我在下面的代码中使用DevCon.exe捕获内容并将其写入文件中。我解析这个文件是为了需要。
Process p = new Process();
p.StartInfo.FileName = "cmd.exe";
p.StartInfo.Arguments = "/C devcon.exe find = port *monitor* > monitor_Details.txt";
p.StartInfo.CreateNoWindow = true;
p.StartInfo.UseShellExecute = true;
p.StartInfo.Verb = "runas";
p.Start();
不幸的是,使用此代码,我没有看到任何文本文件创建。所以,虽然我提到过,但这里没有考虑shell命令。 相同的命令在CMDLine中有效。
任何人都可以帮助解决出错的问题吗?
我也尝试使用下面的代码,但它不起作用。
Process p = new Process();
p.StartInfo.FileName = "devcon.exe";
p.StartInfo.Arguments = "find = port *monitor* > monitor_Details.txt";
p.StartInfo.CreateNoWindow = true;
p.StartInfo.UseShellExecute = true;
p.StartInfo.Verb = "runas";
p.Start();
答案 0 :(得分:3)
您可以根据RedirectStandardOutput
p.StartInfo.RedirectStandardOutput = true;
.....
p.Start();
string result = p.StandardOutput.ReadToEnd();
答案 1 :(得分:0)
我遇到了完全相同的问题。解决方法是为进程提供UserName和Password参数以及“runas”动词。这将使新进程开始提升并能够读/写文件。我没有明确的解释,但它对我有用。
p.StartInfo.Verb = "runas";
p.StartInfo.UserName = Environment.UserName;
p.StartInfo.Password = PromptUserPassword(); //Get password as SecureString