好的,这是前几天工作,现在它不是......我不记得改变任何东西,但我可以使用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();
答案 0 :(得分:3)
您应该使用Registry
课程。
答案 1 :(得分:2)
您的>output.txt
是命令解释程序(cmd.exe)的指令。调用reg.exe
无效。考虑改为调用cmd.exe
,或者重定向stdout并自己将其写入文件。请参阅此SO answer link。
当然,如果没有令人信服的理由要求使用Reg.exe,那么你应该使用Registry类。