我有一个小型的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();
}
并删除了注册表项:
using (RegistryKey key = Registry.CurrentUser.OpenSubKey("SOFTWARE\Microsoft\Windows\CurrentVersion\Run", true))
{
key.DeleteValue("MyApp", false);
key.Close();
}
我已经构建了一个可执行文件(MyApp.exe)并安装在我的计算机上。但是当 Windows 启动时,该应用程序仍然无法运行。我该怎么办?如何在任务管理器上将启动影响"未测量"更改为其他?
我使用的是 Windows 10 x64。对不起我的英语。
谢谢。
对于像我这样有问题的人,我已经解决了我的问题,这是我的应用程序需要以管理员身份运行,所以如果我按照上面编码并设置 app.manifest
<requestedExecutionLevel level = "requireAdministrator" UIAccess = "false "/>
它不会在启动窗口时运行。
为了解决这个问题,我将我的代码从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),您可以在此处看到。关于状态影响,即使状态在任务管理器上"未测量",应用程序仍将在窗口启动时运行。感谢拉希德·马利克和萨米
更新
您可以阅读此处以在Windows启动时运行应用程序,而无需添加注册表项,这对我有用。