我想为我的用户提供“从Windows开始”的选项。当用户选中此选项时,它会将快捷方式图标放入“启动”文件夹(不在注册表中)。
在Windows重新启动时,它会自动加载我的应用程序。
如何做到这一点?
答案 0 :(得分:11)
您可以使用Enviroment.SpecialFolder枚举,但根据您的要求,您可能会考虑创建一个Windows服务而不是必须在启动时启动的应用程序。
File.Copy("shortcut path...", Environment.GetFolderPath(Environment.SpecialFolder.Startup) + shorcutname);
编辑:
File.Copy需要原始文件目录路径和目标目录路径来复制文件。该片段中的关键是Enviroment.GetFolderPath(Enviroment.SpecialFolder.Startup),它将获取要将文件复制到的启动文件夹路径。
您可以通过多种方式使用上述代码。如果你的应用程序有一个安装程序项目,你可以在安装时运行这样的东西。另一种方式可能是当应用程序启动时检查是否存在shorcut,如果不存在则将其放在那里(File.Exists())。
Here是关于在代码中创建快捷方式的问题。
答案 1 :(得分:2)
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();
答案 2 :(得分:-1)
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);
}