Forse ti conviene usare la ShellExecuteEx e la TerminateProcess nel modo seguente:

codice:
'Dichiarazione delle API e delle strutture che richiedono

Dim si As SHELLEXECUTEINFO

Private Type SHELLEXECUTEINFO
  cbSize As Long
  fMask As Long
  hwnd As Long
  lpVerb As String
  lpFile As String
  lpParameters As String
  lpDirectory As String
  nShow As Long
  hInstApp As Long
  lpIDList As Long
  lpClass As String
  hkeyClass As Long
  dwHotKey As Long
  hIcon As Long
  hProcess As Long
End Type


Private Declare Function ShellExecuteEx Lib "shell32.dll" Alias "ShellExecuteExA" _
  (si As SHELLEXECUTEINFO) As Long
  
  
Private Declare Function TerminateProcess Lib "kernel32" (ByVal _
   hProcess As Long, ByVal uExitCode As Long) As Long
    
'Apertura  
'Valorizzi si in base alle tue necessità
  ShellExecuteEx(si) 

'Chiusura
    Dim exitCode As Long
    If TerminateProcess(si.hProcess, exitCode) <> 0 Then
        CloseHandle (si.hProcess)
    End If