我使用以下代码来管理应用程序的自动启动。该应用程序已设置为需要管理员权限,实际上确实要求它们。
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);
}
除了我的开发机器之外,这对我测试的任何系统都不起作用。我在这里做错了什么?
答案 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");
}
}