I.概要
プロセスコンポーネントは、プロセスを実行しているコンピュータへのアクセスを提供します。プロセスは、簡単に言うと、アプリケーションが実行されています。ローカルおよびリモートプロセスへのアクセスを提供し、あなたは、ローカルシステムプロセスの起動と停止することができます。
プロパティ
- Idは、関連するプロセスの一意の識別子を取得します。
- ProcessNameのは、プロセスの名前を取得します。
- MachineNameには、関連するプロセスを実行しているコンピュータの名前を取得します。
- 関連するプロセスのためのターミナルサービスセッションIDを取得するセッションID。
- 読み取りエラー出力用はStandardError取得ストリームアプリケーション。
- 書き込みアプリケーションのためのStandardInput取得ストリーム入力。
- テキスト出力を読み取るためにアプリケーションをストリーミングするためStandardOutputを取得します。
- start()メソッドに渡すプロパティStartInfoプロセスを取得または設定します。
- StartTimeは、開始するには、関連するプロセス時間を取得します。
- スレッドは、関連付けられたプロセスで実行中のスレッドのセットを得ます。
- ハンドルは、ネイティブハンドルに関連付けられているプロセスを取得します。
- 関連するプロセスのメインウィンドウのウィンドウハンドルを取得MainWindowHandle。
- メインウィンドウのタイトルのMainWindowTitle取得処理。
- 関連するプロセスのためのMainModule取得メインモジュール。
- モジュール取得モジュールが関連するプロセスによってロードされます。
方法
- GetCurrentProcess()新しいプロセスコンポーネントと、現在アクティブなプロセスとの関連付けを得ました。
- GetProcessById(のInt32)新しいプロセスコンポーネント(ローカルコンピュータ上のプロセスの所定の識別子)を返し。
- GetProcesses()は、ローカルコンピュータ上の各プロセスリソースのための新しいプロセスコンポーネントを作成します。
- GetProcessesByName(文字列)プロセスコンポーネントの新しい配列を作成し、リソースの指定されたプロセス名を共有するために、ローカルコンピュータ上のすべてのプロセスに関連付けます。
- キル()は、すぐに関連するプロセスを停止します。
- 開始()を起動(または再利用)指定されたこのプロセスコンポーネントの処理リソースStartInfoプロパティ、およびコンポーネントに関連します。
- WaitForExit(のInt32)は、指定されたミリ秒数以内に終了する関連するプロセスを待つプロセスコンポーネントを示しています。
第二に、使用
1、および破壊プロセスの確立System.Diagnosties
System.Diagnostics.Process p = Process.Start(" メモ帳"、" file.txtを" ); Thread.sleep(2000 ); p.Kill();
2、バックグラウンドで実行されているプロセス:
PSI = ProcessStartInfo 新しい新 ProcessStartInfo(" CMD.EXE " ); psi.Arguments = @ " / CのコピーC:\ 1.TXT LPT1 " ; psi.CreateNoWindow = trueに、 psi.UseShellExecute = 偽 ; // デフォルトはtrueで、使用プロセスを開始するシェル。そうでない場合、プロセスは、実行可能ファイルから直接作成されます。 P =プロセスProcess.Start(PSI); IF(!P.WaitForExit(1000 * 7 ))、それが終了するのを待ち、外部プログラムを起動// { )(p.Killを; } p.Close()。
若しくは
ProcessStartInfoのPSI = 新 ProcessStartInfo(" CMD.EXE " ); //ファイル名 psi.RedirectStandardInput = 真; psi.RedirectStandardOutput = 真; psi.CreateNoWindow = 真; //将此属性设置为偽、就能重定向进程... psi.UseShellExecute = 偽; // プロセスp = Process.Start(PSI); StreamWriter SW = p.StandardInput。 StreamReaderをSR = p.StandardOutput。 sw.WriteLine(@ " / CコピーC:\ 1.TXT LPT1 " ); sw.Close(); Console.Write(sr.ReadToEnd())。 sr.Close(); p.Close();
3. [スタート]外部プログラム
System.Diagnostics.Process.Start(" explorer.exeの"、@ " C:/ "); // Cとのオープンエクスプローラ:/ System.Diagnostics.Process.Start(" します。rundll32.exe "、"@ Shell32は。 DLL、Control_RunDLL appwiz.cplで,, 0 "); //が開く"プログラムの追加と削除「パネルを:
4、列挙プロセスは、コンピュータで実行されています
するvar。PLIST = Process.GetProcesses()のOrderBy(X => x.Id).Take(10 )。 foreachの(VARの P でPLIST) { Console.WriteLineを(文字列 .Format(" ProcessIDの{0} \ T ProcessNameの{1}である" 、p.Id、p.ProcessName))。 }
図5に示すように、複数のモジュールを得る工程
VAR mList = Process.GetCurrentProcess()モジュール。 foreachの(ProcessModuleのM でmList) { Console.WriteLineを(文字列 .Format(" ModuleNameを{0} \ T ModuleURL {1} \ T ModuleVersionは{2}である" 、m.ModuleName、m.FileName、m.FileVersionInfo。ファイルバージョン)); }