所以我有一个进程在运行
.reg
文件(这个文件很大,不是我的,它是由应用程序下载的)
应用程序似乎在运行,我看到注册表在运行后刷新(它闪烁),但随后注册表项没有更新
Process proc = new Process();
proc.StartInfo.FileName = "regedit.exe";
proc.StartInfo.Arguments = "/s \"" + InstallDirectory.Text + "\\FFNx.reg\"";
Console.WriteLine(proc.StartInfo.FileName+" "+proc.StartInfo.Arguments);
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.Verb = "runas";
proc.Start();
proc.WaitForExit();
我也试过,
proc.StartInfo.UseShellExecute = true;
看看这是否会对应用程序以管理员身份运行产生影响,
我也尝试过使用
reg.exe
和的论点
proc.StartInfo.Arguments = "import \"" + InstallDirectory.Text + "\\FFNx.reg\"";
此Regfile中同时包含64Bit和32Bit密钥(因此它同时包含这两个密钥
Wow6432Node
没有任何版本的密钥,同样,我没有制作这个注册表文件)
如果我从以管理员身份运行的cmd.exe运行这个确切的命令,它会完美地工作
即使我移除
/s
参数,它会询问用户发生了同样的事情。Regedit像更新一样闪烁,但值没有改变。