Visual C#进程参数不起作用

时间:2011-07-11 22:00:48

标签: c#

好的,这是前几天工作,现在它不是......我不记得改变任何东西,但我可以使用CMD下面的参数运行这个reg.exe命令,它工作正常并创建输出文件。但在VC#中运行它不会创建文件test_output.txt ???

    System.Diagnostics.Process proc_cmd = new System.Diagnostics.Process();
        proc_cmd.StartInfo.FileName = @"c:\windows\system32\reg.exe";
        proc_cmd.StartInfo.Arguments = @"query ""HKLM\Software\test\test software"" /v BuildNumber >c:\test\test_output.txt";
        proc_cmd.StartInfo.CreateNoWindow = true;
        proc_cmd.StartInfo.RedirectStandardError = true;
        proc_cmd.StartInfo.RedirectStandardOutput = true;
        proc_cmd.StartInfo.RedirectStandardInput = true;
        proc_cmd.StartInfo.UseShellExecute = false;
        proc_cmd.Start();
    proc_cmd.Close();

2 个答案:

答案 0 :(得分:3)

您应该使用Registry课程。

答案 1 :(得分:2)

您的>output.txt是命令解释程序(cmd.exe)的指令。调用reg.exe无效。考虑改为调用cmd.exe,或者重定向stdout并自己将其写入文件。请参阅此SO answer link

当然,如果没有令人信服的理由要求使用Reg.exe,那么你应该使用Registry类。