0

我有下面的代码,我使用 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();
4

2 回答 2

3

您可以添加这些行 - 基于RedirectStandardOutput

p.StartInfo.RedirectStandardOutput = true;
.....
p.Start();
string result = p.StandardOutput.ReadToEnd();

链接:http: //msdn.microsoft.com/fr-fr/library/system.diagnostics.processstartinfo.redirectstandardoutput.aspx

于 2012-09-17T13:22:25.753 回答
0

我有同样的问题。一种解决方法是为进程提供用户名和密码参数以及“runas”动词。这将使新进程启动并能够读取/写入文件。我没有明确的解释,但它对我有用。

p.StartInfo.Verb = "runas";
p.StartInfo.UserName = Environment.UserName;
p.StartInfo.Password = PromptUserPassword(); //Get password as SecureString 
于 2013-05-26T04:02:59.180 回答