使用cmd.exe为当前用户添加注册表项失败

时间:2019-04-08 06:06:15

标签: c# cmd registry registrykey

我正在使用Visual Studio安装程序项目创建安装程序文件。在安装过程中,用户将为所有用户或当前用户选择目标目录并进行安装。用户选择之后,我将使用这些信息在本地计算机(所有用户)或当前用户处添加注册表项,具体取决于用户的选择。它适用于本地计算机,但不适用于当前用户。我编写了自定义操作代码,该方法将在commit方法中调用。

以下是添加注册表项的代码:

    public void CreateReg(string cmd, bool allUsers)
{
    System.Diagnostics.Process process = new System.Diagnostics.Process();
    System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
    startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
    startInfo.FileName = "cmd.exe";
    startInfo.Arguments = "/c " + cmd;

    if (allUsers)  // If create key for all users.
        startInfo.Verb = "runas";

    process.StartInfo = startInfo;
    process.Start();
}

如果是当前用户,则allusers = false。我已经记录了字符串cmd,如果我在命令提示符下输入cmd,则会创建一个当前的用户注册表项。如果我创建了一个仅添加注册表项的单独项目,它也将起作用。只是在自定义操作中不起作用。我错过了什么?谢谢!

0 个答案:

没有答案