Process.Id プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
関連付けられたプロセスの一意の識別子を取得します。
public:
property int Id { int get(); };
public int Id { get; }
member this.Id : int
Public ReadOnly Property Id As Integer
プロパティ値
この Process インスタンスが参照する、システムが生成したプロセスの一意の識別子。
例外
例
次の例では、アプリケーションの実行中のすべてのインスタンスの を Id 取得する方法を示します。 このコードでは、メモ帳の新しいインスタンスを作成し、メモ帳のすべてのインスタンスを一覧表示した後、ユーザーが番号を Id 入力して特定のインスタンスを削除できるようにします。
using System;
using System.Threading;
using System.Security.Permissions;
using System.Security.Principal;
using System.Diagnostics;
class ProcessDemo
{
public static void Main()
{
Process notePad = Process.Start("notepad");
Console.WriteLine("Started notepad process Id = " + notePad.Id);
Console.WriteLine("All instances of notepad:");
// Get Process objects for all running instances on notepad.
Process[] localByName = Process.GetProcessesByName("notepad");
int i = localByName.Length;
while (i > 0)
{
// You can use the process Id to pass to other applications or to
// reference that particular instance of the application.
Console.WriteLine(localByName[i - 1].Id.ToString());
i -= 1;
}
i = localByName.Length;
while (i > 0)
{
Console.WriteLine("Enter a process Id to kill the process");
string id = Console.ReadLine();
if (string.IsNullOrEmpty(id))
break;
try
{
using (Process chosen = Process.GetProcessById(Int32.Parse(id)))
{
if (chosen.ProcessName == "notepad")
{
chosen.Kill();
chosen.WaitForExit();
}
}
}
catch (Exception e)
{
Console.WriteLine("Incorrect entry.");
continue;
}
i -= 1;
}
}
}
Imports System.Threading
Imports System.Security.Permissions
Imports System.Security.Principal
Imports System.Diagnostics
Class ProcessDemo
Public Shared Sub Main()
Dim notePad As Process = Process.Start("notepad")
Console.WriteLine("Started notepad process Id = " + notePad.Id.ToString())
Console.WriteLine("All instances of notepad:")
' Get Process objects for all running instances on notepad.
Dim localByName As Process() = Process.GetProcessesByName("notepad")
Dim i As Integer = localByName.Length
While i > 0
' You can use the process Id to pass to other applications or to
' reference that particular instance of the application.
Console.WriteLine(localByName((i - 1)).Id.ToString())
i -= 1
End While
i = localByName.Length
While i > 0
Console.WriteLine("Enter a process Id to kill the process")
Dim id As String = Console.ReadLine()
If id = String.Empty Then
Exit While
End If
Try
Using chosen As Process = Process.GetProcessById(Int32.Parse(id))
If chosen.ProcessName = "notepad" Then
chosen.Kill()
chosen.WaitForExit()
End If
End Using
Catch e As Exception
Console.WriteLine("Incorrect entry.")
GoTo ContinueWhile1
End Try
i -= 1
ContinueWhile1:
End While
End Sub
End Class
注釈
関連付けられたプロセス Id が実行されていない場合、プロセスは無効です。 そのため、プロパティの取得 Id を試みる前に、プロセスが実行されていることを確認する必要があります。 プロセスが終了するまで、プロセス識別子はシステム全体でプロセスを一意に識別します。
ローカル コンピューターまたはリモート コンピューターで実行されているプロセスを新 Process しいインスタンスに接続するには、プロセス識別子を メソッドに GetProcessById 渡します。 GetProcessByIdは、static
新しいコンポーネントを作成し、新しいProcessインスタンスの Id プロパティを自動的に設定するメソッドです。
プロセス識別子は、システムによって再利用できます。 プロパティ値は Id 、関連付けられたプロセスの実行中にのみ一意です。 プロセスが終了すると、関連のないプロセスのプロパティ値を Id 再利用できます。
識別子はシステム上で一意であるため、インスタンスを渡す代わりに他のスレッドに渡 Process すことができます。 このアクションにより、システム リソースを節約できますが、プロセスが正しく識別されることを保証できます。
適用対象
こちらもご覧ください
.NET