在用户的启动文件夹中放置一个快捷方式以启动Windows

我想给我的用户一个select“从Windows启动”。 当用户选中此选项时,它会将快捷方式图标放入启动文件夹(不在registry中)。

在Windows重新启动时,它会自动加载我的应用程序。

如何才能做到这一点?

Solutions Collecting From Web of "在用户的启动文件夹中放置一个快捷方式以启动Windows"

您可以使用Enviroment.SpecialFolder枚举,虽然根据您的要求,您可能会考虑创建一个Windows服务,而不是一个必须在启动时启动的应用程序。

File.Copy("shortcut path...", Environment.GetFolderPath(Environment.SpecialFolder.Startup) + shorcutname); 

编辑:

File.Copy只是从文件和文件到路径复制文件。 该片段中的关键是获取启动文件夹路径复制到Enviroment.GetFolderPath(Enviroment.SpecialFolder.Startup)。

你可以用几种方法使用上面的代码。 如果您的应用程序有安装程序项目,则可以在安装时运行此类程序。 另一种方式可能是当应用程序启动时检查shorcut是否存在,如果不存在则放一个(File.Exists())。

这里还有一个关于在代码中创建快捷方式的问题。

 WshShell wshShell = new WshShell(); IWshRuntimeLibrary.IWshShortcut shortcut; string startUpFolderPath = Environment.GetFolderPath(Environment.SpecialFolder.Startup); // Create the shortcut shortcut = (IWshRuntimeLibrary.IWshShortcut)wshShell.CreateShortcut( startUpFolderPath + "\\" + Application.ProductName + ".lnk"); shortcut.TargetPath = Application.ExecutablePath; shortcut.WorkingDirectory = Application.StartupPath; shortcut.Description = "Launch My Application"; // shortcut.IconLocation = Application.StartupPath + @"\App.ico"; shortcut.Save(); 
 private void button2_Click(object sender, EventArgs e) { string pas = Application.StartupPath; string sourcePath = pas; string destinationPath = @"C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup"; string sourceFileName = "filename.txt";//eny tipe of file string sourceFile = System.IO.Path.Combine(sourcePath, sourceFileName); string destinationFile = System.IO.Path.Combine(destinationPath); if (!System.IO.Directory.Exists(destinationPath)) { System.IO.Directory.CreateDirectory(destinationPath); } System.IO.File.Copy(sourceFile, destinationFile, true); }