【问题标题】:C# + VB: Import reg fileC# + VB:导入 reg 文件
【发布时间】:2018-06-04 06:34:31
【问题描述】:

这里有很多关于这个问题的答案,但它们似乎不适用于我的 Win10... C#

string RegFile = "some long path with spaces\file.reg";    
Process regeditProcess = Process.Start("regedit.exe", "/s \"" + RegFile + "\"");
regeditProcess.WaitForExit();

VB

Dim RegFile As String = "some long path with spaces\file.reg"
Process.Start("regedit.exe", "/s" & Chr(34) & RegFile & Chr(34))

尽管有 /s 参数,这两种情况仍然会出现 Regedit 确认框。

【问题讨论】:

  • 您是否尝试过以管理员权限运行程序?
  • 我正在使用管理员权限运行。也许公司政策正在影响这一点
  • 我认为它会来自 UAC,您可以尝试在会话为管理员且程序以管理员身份运行的另一台计算机上运行代码吗?
  • 没办法。这个程序需要很多用户运行。我得和我们的 IT 人员谈谈
  • 然后尝试:regedit /sreg /s 但如果您无法在另一台计算机上测试您的代码,则不确定它是来自代码还是您的计算机

标签: c# vb.net import registry


【解决方案1】:

问题可能来自 UAC,并且没有在静默模式下启动注册表的适当权限。

也可能是 regedit.exe 文件在某些​​安装过程中被修改或更改。

建议:

  • 以管理员身份运行程序

你也应该试试:

Process.Start("regedit", "/s" & Chr(34) & RegFile & Chr(34))

还有

Process.Start("reg", "/s" & Chr(34) & RegFile & Chr(34))

我认为这应该直接从可能链接到另一个 .exe 的 windows 调用程序的引用,因此这就是它可以与这个版本一起使用的原因。

如果其他人知道为什么 reg /s 选项有效,但其他人不知道,请告诉我。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多