Back to Top

プログラムの覚書

Category: プロセス

VB.NET二重起動を禁止する

Visual Studio 2005以降の、アプリケーションの二重起動を禁止する

1.メニューの「プロジェクト」-「プロパティ」により、プロジェクトのプロパティを表示します。

2.「アプリケーション」を選択します。

3.「アプリケーションフレームワークを有効にする」を有効にします。(通常チェックされている)

4.「Windowsアプリケーションフレームワークプロパティ」の「単一インスタンスのアプリケーションを作成する」にチェックを入れ有効にします。

以上で二重起動が禁止されます。

動作としては既に起動されているアプリケーションがあるならアクティブにします。

 

VB.NETプロセスを取得する

プロセスの取得方法を説明します。

System.Diagnostics.Processクラスを使用します。

自分自身のプロセスを取得する

Dim hPros As System.Diagnostics.Process = System.Diagnostics.Process.GetCurrentProcess()

'プロセス名を表示する
MessageBox.Show(hPros.ProcessName)

hPros.Close()
hPros.Dispose()

実行中の全てのプロセスを取得する

Dim hPros As System.Diagnostics.Process() = System.Diagnostics.Process.GetProcesses()

'コンピュータ名を指定すると、別のコンピュータのプロセスが取得可能です
'hPros = System.Diagnostics.Process.GetProcesses("MachineName")

Dim str As String = ""

'取得できたプロセスからプロセス名を取得する
For Each hp As System.Diagnostics.Process In hPros
    str &= hp.ProcessName & System.Environment.NewLine
Next

'実行中のすべてのプロセス名を表示する
MessageBox.Show(str)

コンピュータ名を指定することで、別のコンピュータのプロセスが取得可能になります。
hPros = System.Diagnostics.Process.GetProcesses(“xxxxxxxxxx”)

指定した名前に合致するプロセスを全て取得する

System.Diagnostics.ProcessクラスのGetProcessesByNameメソッドを使用します。

Dim hPros As System.Diagnostics.Process() = System.Diagnostics.Process.GetProcessesByName("Notepad")

Dim str As String = ""

'取得できたプロセスからプロセスIDを取得する
For Each hp As System.Diagnostics.Process In hPros
    str &= hp.id & System.Environment.NewLine
Next

'取得したっ全てのプロセスIDを表示する
MessageBox.Show(str)

指定したIDに合致するプロセスを取得する

System.Diagnostics.ProcessクラスのGetProcessByIdメソッドを使用します。

'プロセスIDが0のプロセスを取得する
Dim hPros As System.Diagnostics.Process = System.Diagnostics.Process.GetProcessById(0)

'取得できたプロセス名を表示する
If Not hPros Is Nothing Then
    MessageBox.Show(hPros.ProcessName)
End If

hPros.Close()
hPros.Dispose()