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();

残念ながら、このコードでは、作成されたテキストファイルが表示されません。したがって、ここではシェルコマンドは考慮されていません。同じコマンドがCMDLineで機能しています。

誰かplsは何がうまくいかないかについて助けることができますか?

以下のコードでも試してみましたが、動作しません。

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

私はまったく同じ問題を抱えていました。回避策は、プロセスのUserNameパラメーターとPasswordパラメーター、および「runas」動詞を提供することです。これにより、新しいプロセスが昇格して開始され、ファイルの読み取り/書き込みが可能になります。明確な説明はありませんが、うまくいきました。

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