代码之家  ›  专栏  ›  技术社区  ›  Barkermn01

注册表regedit未更新值C#进程

  •  0
  • Barkermn01  · 技术社区  · 4 年前

    所以我有一个进程在运行 .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像更新一样闪烁,但值没有改变。

    0 回复  |  直到 4 年前