Here's a one-liner. Although it's pretty damn ugly:
VB Code:
  1. Private Sub Form_Load()
  2.     Debug.Print IsProcessRunning("C:\Program Files\Microsoft Visual Studio\VB98\VB6.EXE")
  3.     Debug.Print IsProcessRunning("C:\Program Files\Microsoft Visual Studio\VB98\NotRunning.EXE")
  4. End Sub
  5.  
  6. Private Function IsProcessRunning(ByVal sPath As String) As Boolean
  7.     On Error Resume Next
  8.     IsProcessRunning = GetObject("winmgmts:").ExecQuery("SELECT * FROM Win32_Process WHERE ExecutablePath = '" & Replace(sPath, "\", "\\") & "'").Count
  9. End Function