如何在重启后自动运行应用程序? (通过c#代码)我使用App的路径在注册表中的'runOnce'键中创建一个新字符串。 操作系统在加载操作系统之前运行此APP 我的问题是:我的APP加载但资源管理器没有加载,我关闭我的APP后,资源管理器加载 我在APP中重新启动计算机,重启后我希望我的APP重新打开
答案 0 :(得分:9)
当您从应用程序中单击“重新启动”时,请对注册表进行以下修改:
在HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
注册表分支中创建一个条目。
使用
Registry.LocalMachine.CreateSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\\YourAppName");
创建一个条目。
并且
RegistryKey myKey = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\\YourAppName", true);
myKey.SetValue("YourAppName", "AppExecutablePath", RegistryValueKind.String);
设置运行路径。
系统重新启动后,您的应用程序将启动并通过调用以下命令删除重新启动条目:
Registry.LocalMachine.DeleteSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\\YourAppName");
答案 1 :(得分:3)
似乎最好的办法是将程序添加到RunOnce,而不是Run。这样它将在下次重启后启动,但您不必担心以后擦除密钥。
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
答案 2 :(得分:1)
这是一个更好的答案,因为您不应该创建SubKey。这也将自动处理。
string runKey = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Run";
using (RegistryKey key = Registry.LocalMachine.OpenSubKey(runKey, true))
{
key.SetValue("MyProgram", @"C:\MyProgram.exe");
}