INSERISCI QUESTO IN UN MODULO:
Private Const TH32CS_SNAPPROCESS As Long = 2&
Private Const MAX_PATH As Long = 260

Private Type PROCESSENTRY32
dwSize As Long
cntUsage As Long
th32ProcessID As Long
th32DefaultHeapID As Long
th32ModuleID As Long
cntThreads As Long
th32ParentProcessID As Long
pcPriClassBase As Long
dwFlags As Long
szExeFile As String * MAX_PATH
End Type

Private Declare Sub CloseHandle Lib "Kernel32.dll" (ByVal hPass As Long)
Private Declare Function CreateToolhelpSnapshot Lib "Kernel32.dll" Alias "CreateToolhelp32Snapshot" (ByVal lFlags As Long, ByVal lProcessID As Long) As Long
Private Declare Function ProcessFirst Lib "Kernel32.dll" Alias "Process32First" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long
Private Declare Function ProcessNext Lib "Kernel32.dll" Alias "Process32Next" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long

Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

INSERIRE IL CODICE IN UN FORM:
Private Sub Form_Load()
Timer1.Interval = 200
End Sub
Private Function HyperJump(ByVal URL As String) As Long
HyperJump = ShellExecute(0&, vbNullString, URL, vbNullString, vbNullString, vbNormalFocus)
End Function
Private Sub Form_Terminate()
Timer1.Interval = 0
End Sub

Private Sub Timer1_Timer()
If ProcessoAttivo(Trim(Text1.Text)) Then
Label1.Caption = "L'Applicazione è in esecuzione"
Else
Label1.Caption = "L'Applicazione non è in esecuzione"
End If
End Sub
Private Function ProcessoAttivo(NomeProcesso As String) As Boolean
Dim hSnapShot As Long
Dim uProcess As PROCESSENTRY32
Dim continua As Long
Dim Verifica As String
hSnapShot = CreateToolhelpSnapshot(TH32CS_SNAPPROCESS, 0&)
If hSnapShot = 0 Then Exit Function
uProcess.dwSize = Len(uProcess)
continua = ProcessFirst(hSnapShot, uProcess)
contaprocessi = 1
ProcessoAttivo = False
Do While continua
continua = ProcessNext(hSnapShot, uProcess)
Verifica = uProcess.szExeFile
If Trim(Verifica) <> "" Then
If InStr(1, Right(LCase(Left(Verifica, InStr(1, Verifica, Chr(0)) - 1)), Len(LCase(NomeProcesso))), LCase(NomeProcesso)) <> 0 Then ProcessoAttivo = True: Exit Function
End If
Loop
Call CloseHandle(hSnapShot)
End Function

'inserisci nel form 1 textbox e 1 label. Nella textbox inserisci il file da controllare e la label ti darà la risposta.
Questo però non è il codice perfetto di cosa mi hai chiesto te, ma è molto simile. Ora non ho tempo di fare ciò che mi hai chiesto ma sono sicuro che tuo fratello sia in grado di modificarlo, anche perchè è banale....se poi non ci riesce fatti risentire che lo scrivo apposta per le tue esigenze..ciao