我有一个小型的WPF应用程序。我试图在Windows启动时启动它 我的C#代码如下:
using (RegistryKey key = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true))
{
key.SetValue("MyApp", "\"" + System.Reflection.Assembly.GetExecutingAssembly().Location + "\"");
key.Close();
}
并删除了RegistryKey:
using (RegistryKey key = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true))
{
key.DeleteValue("MyApp", false);
key.Close();
}
我已经构建了一个可执行文件(MyApp.exe)并安装在我的计算机上。但Windows启动时应用程序仍然无法运行。我能怎么做?如何改变启动影响"未测量"任务管理器上的其他人?
我使用的是Windows 10 x64。抱歉我的英文。
感谢。
答案 0 :(得分:2)
对于像我这样有问题的人,我已经解决了我的问题,我的应用程序需要以管理员身份运行,所以如果我按照上面的代码编写并设置 app.manifest
<requestedExecutionLevel level = "requireAdministrator" UIAccess = "false "/>
它不会在启动Windows上运行。
要解决此问题,我将代码从 CurrentUser 更改为 LocalMachine :
using (RegistryKey key = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true))
{
key.SetValue("TechTemp", "\"" + System.Reflection.Assembly.GetExecutingAssembly().Location + "\"");
key.Close();
}
和
using (RegistryKey key = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true))
{
key.DeleteValue("TechTemp", false);
key.Close();
}
下一个问题是如何关闭应用程序的UAC(如果您的计算机上启用了UAC),您可以看到here。关于状态影响,即使状态在任务管理器上“未测量”,您的应用程序仍将在窗口启动时运行。 感谢Rashid Malik和Sami
<强>更新强>
您可以阅读here在Windows启动时运行应用程序而无需添加注册表项,这对我有用。