[英]How to log my app to windows registry?
我正在编写一个应用程序,该应用程序在用户安装后每次计算机启动时都需要工作。 我尝试在afterInstall事件中在安装程序中执行此操作,但安装程序将其自身放入注册表中,并在Windows重新启动时运行,因此我尝试使用commitd事件执行此操作,并获得了相同的结果。 之后,我将commited属性安装程序类设置为false,但是提交的evet不会触发。 我的最后一次尝试是在安装该应用程序后运行该应用程序,然后将其写入注册表中,并且发生了一件奇怪的事,它确实在注册表中产生了错误,但没有出现在我想要的位置,有人知道为什么吗?我修理它?
我的代码:
bool registry = true;
RegistryKey rkSubKey = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", false);
string[] values = rkSubKey.GetValueNames();
foreach(string name in values)
{
if (name.Equals("appName"))
registry = false;
}
if (registry)
{
RegistryKey rkApp = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
rkApp.SetValue("appName", Application.ExecutablePath.ToString());
DialogResult r = MessageBox.Show("The system now needs to restart your computer whould you like to do it now?", "Restart is needed", MessageBoxButtons.YesNo);
if (r == DialogResult.Yes)
{
System.Diagnostics.Process.Start("ShutDown", "/r");
}
return;
}
mainModule.start();
您是否尝试过这样打开子根密钥smth:
var HKLM = RegistryKey.OpenBaseKey(RegistryHive.CurrentUser, Environment.Is64BitOperatingSystem ? RegistryView.Registry64 : RegistryView.Registry32);
然后获取您的子项:
var baseKey = HKLM.OpenSubKey(...<the path here>..)
?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.