VBレスキュー(花ちゃん)
VB2005用トップページへVBレスキュー(花ちゃん)のトップページVB6.0用のトップページ各掲示板

メニューへ戻ります。 アプリケーション(自・他)関係のメニュー
1.VB2013 から他のアプリケーションを起動する方法色々 
2.アプリケーションを開始した実行可能ファイルのパス等を取得
3.起動したプロセスの終了を検出する方法(2方法)
4.アプリケーションの2重起動を防止する(2方法)
5.ローカルコンピューター上で実行しているプロセスを取得
6.My.Settings を使用して終了時の状態を保存し起動時に設定を反映
7.
8. 
9. 
10. 
11.
12.
 . 
20.その他、当サイト内に掲載のアプリケーション(自・他)に関するサンプル


4.アプリケーションの2重起動を防止する(04_App_04) (旧、SampleNo.051)
1.Process.GetProcessesByName メソッドを使用してアプリケーションの2重起動を防止する
2.Mutex コンストラクター を使用してアプリケーションの2重起動を防止する
3. 
4. 
5. 
6. 

 下記プログラムコードに関する補足・注意事項 
動作確認:Windows 8.1 (Windows 7) / VB2013 (VB2010) / Framework 4.5.1 / 対象の CPU:x86
Option :[Compare Text] [Explicit On] [Infer On] [Strict On]
Imports :追加なし
参照設定:追加なし
その他 :
    :
このサンプル等の内容を無断で転載、掲載、配布する事はお断りします。(私の修正・改訂・削除等が及ばなくなるので)
必要ならリンクをはるようにして下さい。(引用の場合は引用元のリンクを明記して下さい)
このページのトップへ移動します。 1.Process.GetProcessesByName メソッドを使用してアプリケーションの2重起動を防止する

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
'テスト起動
    System.Diagnostics.Process.Start("04_App_04.exe")
End Sub

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    'Process.ProcessName(プロパティ(プロセスの名前を取得します))
    Dim pn As String = Process.GetCurrentProcess.ProcessName
    'Process.GetProcessesByName メソッド
    '指定したプロセス名を共有するリモートコンピューター上の
    'すべてのプロセスリソースに関連付けます。
    If Process.GetProcessesByName(pn).GetUpperBound(0) > 0 Then
        MessageBox.Show("同じアプリがすでに起動しています。No.1")
        Me.Close()
    End If
End Sub


このページのトップへ移動します。 2.Mutex コンストラクター を使用してアプリケーションの2重起動を防止する

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
'テスト起動
    System.Diagnostics.Process.Start("04_App_04.exe")
End Sub

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    'Mutex コンストラクター
    'ミューテックスの名前を表す文字列を使用して、
    'Mutex クラスの新しいインスタンスを初期化します。
    Dim mt As New System.Threading.Mutex(False, Process.GetCurrentProcess.ProcessName)
    'WaitHandle.WaitOne メソッド
    '現在の WaitHandle がシグナルを受信するまで現在のスレッドをブロックします
    If mt.WaitOne(0, False) = False Then
        MessageBox.Show("同じアプリがすでに起動しています。No.2")
        mt.Close()
        Me.Close()
    End If
End Sub

このページのトップへ移動します。 3. 


このページのトップへ移動します。 4. 


このページのトップへ移動します。 5. 


このページのトップへ移動します。 6.


このページのトップへ移動します。 検索キーワード及びサンプルコードの別名(機能名)
同じアプリがすでに起動しているかどうかを取得




このページのトップへ移動します。