2026年6月16日火曜日

vbaでプロセスが実行中かどうか調べる

 vbaでプロセスが実行中かどうかを判別する。

WindowsAPIのFindWindowと異なり、タスクトレイ常駐タイプ(Window名が出ないプログラム)にも使える。



Sub Test()
    If IsProcessRunning("WowShot2.exe") Then
        MsgBox "WowShot2.exe は起動中です"
    Else
        MsgBox "WowShot2.exe は起動していません"
    End If
End Sub

Function IsProcessRunning(processName As String) As Boolean
    Dim objWMI As Object
    Dim colProcess As Object

    Set objWMI = GetObject("winmgmts:\\.\root\cimv2")
    Set colProcess = objWMI.ExecQuery( _
        "SELECT * FROM Win32_Process WHERE Name='" & processName & "'")
    IsProcessRunning = (colProcess.Count > 0)
End Function

Sub RunWowShot2()
    If Not IsProcessRunning("WowShot2.exe") Then
        Shell "C:\path\WowShot2.exe"
    End If
End Sub

0 件のコメント:

コメントを投稿