8

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

4

3 回答 3

10

当您从您的应用程序单击重新启动时,对注册表进行以下修改:

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");
于 2011-09-20T10:06:00.873 回答
4

似乎您最好的选择是将您的程序添加到 RunOnce,而不是 Run。这样它将在下次重新启动后启动,但您不必担心之后擦除密钥。

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
于 2012-09-05T06:58:05.630 回答
2

这是一个更好的答案,因为您不应该创建子密钥。这也会自动处理。

string runKey = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Run";

using (RegistryKey key = Registry.LocalMachine.OpenSubKey(runKey, true))
{
    key.SetValue("MyProgram", @"C:\MyProgram.exe");
}
于 2014-09-10T00:32:23.203 回答