如何在重启后自动运行应用程序?

时间:2011-09-20 09:49:59

标签: c# regedit

如何在重启后自动运行应用程序? (通过c#代码)我使用App的路径在注册表中的'runOnce'键中创建一个新字符串。 操作系统在加载操作系统之前运行此APP 我的问题是:我的APP加载但资源管理器没有加载,我关闭我的APP后,资源管理器加载 我在APP中重新启动计算机,重启后我希望我的APP重新打开

3 个答案:

答案 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");
}