开发者

Visual C # process arguments not working

ok this was working the other day and now it's not... i don't remember changing anything, but i can run this reg.exe command with the arguments below from CMD and it works fine and creates the output file. but running it in VC# it does not create the file 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();


You should use the Registry class instead.


Your >output.txt is an instruction to the command interpreter (cmd.exe). That won't work calling reg.exe. Consider calling cmd.exe instead, or redirecting the stdout and writing it to the file yourself. See this SO answer link.

Of course, if there's no compelling reason to shell out to the Reg.exe, you should use the Registry class.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜