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

jam*_*lcs 6 .net c# vb.net windows

我想给我的用户一个"从Windows开始"的选项.当用户选中此选项时,它会将快捷方式图标放入"启动"文件夹(不在注册表中).

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

如何才能做到这一点?

Pat*_*fka 11

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

File.Copy("shortcut path...", Environment.GetFolderPath(Environment.SpecialFolder.Startup) + shorcutname);
Run Code Online (Sandbox Code Playgroud)

编辑:

File.Copy需要原始文件directory-path和目标directory-path来复制文件.该片段中的关键字是Enviroment.GetFolderPath(Enviroment.SpecialFolder.Startup),它将获取要将文件复制到的启动文件夹路径.

你可以用几种方式使用上面的代码.如果你的应用程序有一个安装程序项目,你可以在安装时运行这样的东西.另一种方式可能是当应用程序启动时检查是否存在shorcut,如果不存在则将其放在那里(File.Exists()).

是一个关于在代码中创建快捷方式的问题.


War*_*ula 5

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();
Run Code Online (Sandbox Code Playgroud)