C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 51 を表示中)
■28058 / )  システム情報 ツールの情報をエクスポートするには?
□投稿者/ まぐねしうむ (50回)-(2008/11/19(Wed) 13:46:14)

分類:[C#] 

いつもお世話になっております。
早速ですが、C#からmsinfo32.exeをコマンドプロンプトから
呼び出し、引数を使いシステム情報をファイルに出力しようと考えています。

具体的には、コマンドプロンプト上で
"%CommonProgramFiles%\Microsoft Shared\MSInfo.\msinfo32.exe" /report C:\msinfo.log /categories +all
を打つと、自動的にシステム情報を出力してくれますが
これを、C#上でボタンを押すだけで出力しよう考えておりますが
なぜか、出力されません。

考えられる要因がpsi.Argumentsのコマンドの中身位なのですが
MsgBoxで中身を確認しましたが、同じように見えます。

何がまずいんでしょうか?
よろしければどなたかアドバイスください。

◆書いたコード

ProcessStartInfo psi = new ProcessStartInfo();
//ComSpecのパスを取得する
psi.FileName = System.Environment.GetEnvironmentVariable("ComSpec");

//出力を読み取れるようにする
psi.RedirectStandardInput = false;
psi.RedirectStandardOutput = true;
psi.UseShellExecute = false;
//ウィンドウを表示しないようにする
psi.CreateNoWindow = true;
//コマンドラインを指定
psi.Arguments = '"' + @"%CommonProgramFiles%\Microsoft Shared\MSInfo.\msinfo32.exe" + '"' + " /report " + strPath + @" /categories +all";

//起動
System.Diagnostics.Process p = System.Diagnostics.Process.Start(psi);
//出力を読み取る
string results = p.StandardOutput.ReadToEnd();
//WaitForExitはReadToEndの後である必要がある
//(親プロセス、子プロセスでブロック防止のため)
p.WaitForExit();

//出力された結果を表示
Console.WriteLine(results);

返信 編集キー/


管理者用

- Child Tree -