我的应用程序不会自动启动Windows - 这里有什么问题?

时间:2013-04-25 13:45:00

标签: c# .net registry admin startup

我使用以下代码来管理应用程序的自动启动。该应用程序已设置为需要管理员权限,实际上确实要求它们。

RegistryKey rkApp = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
if (checkRunOnStartup.Checked)
{
    rkApp.SetValue("MyApp", Application.ExecutablePath.ToString());
}
else
{
    rkApp.DeleteValue("MyApp", false);
}

除了我的开发机器之外,这对我测试的任何系统都不起作用。我在这里做错了什么?

1 个答案:

答案 0 :(得分:0)

您可以在Windows启动文件夹中创建/删除应用程序的快捷方式,而不是编写注册表项。 Environment.SpecialFolder.Startup将返回该路径。如果你在reg key选项上设置了死机,那么每个DotnetThoughts的代码片段就是一段代码。似乎主要区别在于他放弃了.ToString()。

private void RegisterInStartup(bool isChecked)
{
   RegistryKey registryKey = Registry.CurrentUser.OpenSubKey
        ("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
   if (isChecked)
   {
       registryKey.SetValue("ApplicationName", Application.ExecutablePath);
   }
   else
   {
     registryKey.DeleteValue("ApplicationName");
   }
}