2009-03-18 5 views
0

C#を使用してウィンドウを実行するコマンドのようなアプリケーションを作成する方法。任意のコマンド(たとえばipconfig)を挿入すると、テキストボックスにこの結果(192.168.1.1など)が返されます。ビスタの実行コマンドのようなコマンドアプリケーションを作成する方法

  1. Windowsのコマンドリストを取得する方法は?
  2. コマンドの結果を取得する方法は?
  3. マシンにインストールされているアプリケーションリストを取得する方法は?

答えて

2

(1)コマンドリストは、おそらく%PATH%にある実行ファイルから来る可能性があります。あなたは、%PATH%で指定されたすべてのフォルダ内のすべての.exe/.bat /その他の実行可能ファイルを見つけることによって、リストを把握することができます。どのアプリケーションが利用可能であるかを知る必要はないかもしれません。Process.Startメソッドはそれを見つけます。

System.Diagnostics.ProcessStartInfo psi = 
    new System.Diagnostics.ProcessStartInfo(@"ipconfig"); 
psi.RedirectStandardOutput = true; 
psi.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; 
psi.UseShellExecute = false; 

System.Diagnostics.Process myProcess; 
myProcess = System.Diagnostics.Process.Start(psi); 
System.IO.StreamReader myOutput = myProcess.StandardOutput; // Capture output 
myProcess.WaitForExit(2000); 
if (myProcess.HasExited) 
{ 
    string output = myOutput.ReadToEnd(); 
    Console.WriteLine(output); 
} 

(:

System.Diagnostics.Process.Start("notepad.exe"); // located using %PATH% 

を出力をキャプチャするには、あなたはこのようにそれをリダイレクトする必要があります(2)あなたは、プログラムで使用してコマンドラインツールを実行することができます

(下記参照) 3)おそらく1と同じ回答

1

ウィザードを使用してWindowsフォームアプリケーションを作成します。テキストボックスとボタンを描画します。ボタンにクリックハンドラを追加して、テキストボックスの内容を取得し、プロセスを起動します。 Processクラスを使用します。そのクラスにはStandardOutputプロパティもあります。このプロパティを使用すると、出力を読み取ってテキストボックスに入れることができます。

多くのコマンドプロンプトコマンドを使用するには、コマンドインタープリタとは別のプログラムではないので、先頭にCMD /Cと入力する必要があります。

コマンドのリストを発見するのは、一般的には不可能です。コマンドは単なるプログラム(またはコマンド・インタープリターCMDの機能)です。ハードドライブを検索して.exeファイルにすることはできますが、その多くは「コマンド」としては適していません。

関連する問題