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

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


5.ローカルコンピューター上で実行しているプロセスを取得(04_App_05) (旧、SampleNo.052)
1.ローカルコンピューター上で実行しているすべてのプロセスを取得
2.実行している指定のプロセス名のすべてのプロセスを取得
3.指定のメモ帳のファイルを起動している notepad.exe を探し終了させる
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 :追加なし
参照設定:追加なし
その他 :Process クラス のメンバーには、この他 かなりの プロパティ や メソッド 等があります。
    :詳しくは、MSDN で Process クラス のメンバーを見て下さい。
このサンプル等の内容を無断で転載、掲載、配布する事はお断りします。(私の修正・改訂・削除等が及ばなくなるので)
必要ならリンクをはるようにして下さい。(引用の場合は引用元のリンクを明記して下さい)
このページのトップへ移動します。 1.ローカルコンピューター上で実行しているすべてのプロセスを取得

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
'ローカルコンピューター上で実行しているすべてのプロセスを取得
    Dim localProcAll As System.Diagnostics.Process() = System.Diagnostics.Process.GetProcesses()
    Dim p As System.Diagnostics.Process
    For Each p In localProcAll
        Try
            '取得したプロセスの プロセスID・プロセス名・ウィンドウのキャプション名を表示
            If p.Handle <> IntPtr.Zero Then
                If p.MainWindowHandle <> IntPtr.Zero Then
                    '通常に起動しているアプリケーション類
                    Console.WriteLine("{0} / {1} : {2} :Window のハンドルが取得できたもの  {3}", _
                                        p.Id, p.ProcessName, p.MainWindowTitle, p.MainWindowHandle)
                Else
                    'Window を非表示で動作(起動)しているアプリケーション類
                    Console.WriteLine("{0} / {1} : ハンドルが取得できたもの {2}", p.Id, p.ProcessName, p.Handle)
                End If
            End If
        Catch ex As Exception
            Console.WriteLine("{0} / {1} : ハンドルがないもの", p.Id, p.ProcessName)
        End Try

        'その中から指定のアプリを探す場合
        If p.ProcessName = "notepad" Then
            MessageBox.Show("メモ帳が起動しています")
        End If
    Next
End Sub

このページのトップへ移動します。 2.実行している指定のプロセス名のすべてのプロセスを取得

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
'すでに起動している メモ帳 をすべて取得
    'Process.GetProcessesByName メソッド
    '新しい Process コンポーネントの配列を作成し、
    '指定したプロセス名を共有する既存のプロセスリソースに関連付けます。
    'ローカルコンピューター上で実行しているすべてのメモ帳のプロセスを取得
    '(Win7 からは、なぜか Excel は1個しか取得できない)
    Dim localByName As Process() = Process.GetProcessesByName("notepad")    'メモ帳
    Dim p As Process
    '取得したExcelの プロセスID・プロセス名・ウィンドウのキャプション名を表示
    For Each p In localByName
        Console.WriteLine("{0} / {1} : {2}", p.Id, p.ProcessName, p.MainWindowTitle)
        'p.CloseMainWindow()    '終了させる場合
    Next
End Sub

このページのトップへ移動します。 3.指定のメモ帳のファイルを起動している notepad.exe を探し終了させる

Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
'指定のメモ帳のファイルを起動している notepad.exe を探し終了させる
    Dim localByName As Process() = Process.GetProcessesByName("notepad")
    Dim p As Process
    Dim fn As String = "無題 - メモ帳"
    '起動中のメモ帳を取得
    For Each p In localByName
        Console.WriteLine("{0} / {1} : {2}", p.Id, p.ProcessName, p.MainWindowTitle)

        '指定のファイル名(無題 - メモ帳)で起動中のメモ帳があれば終了する
        If System.String.Compare(p.MainWindowTitle, fn, True) = 0 Then
            '指定のウィンドウにクローズ メッセージを送信して、プロセスを終了
            p.CloseMainWindow()
        End If
    Next
End Sub

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


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


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


このページのトップへ移動します。 検索キーワード及びサンプルコードの別名(機能名)
指定のアプリが起動しているかを調査  起動中のアプリを取得




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