io avevo usato
Declare Function OpenProcess Lib "Kernel32.dll" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Declare Function SendMessageTimeout Lib "User32.dll" Alias "SendMessageTimeoutA" (ByVal hWnd As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long, ByVal fuFlags As Long, ByVal uTimeout As Long, pdwResult As Long) As Long
Declare Function TerminateProcess Lib "Kernel32.dll" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long
Declare Function EnumWindows Lib "User32.dll" (ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long
Declare Function GetWindowThreadProcessId Lib "User32.dll" (ByVal hWnd As Long, lpdwProcessId As Long) As Long
Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
Sub TerminaApplicazione()
Dim lPid As Long, lReturn As Long, lProcess As Long
If lHwnd = 0 Then Exit Sub
'Recupera il process ID dell'applicazione partendo dal suo handle.
lReturn = GetWindowThreadProcessId(lHwnd, lPid)
'Termina l'applicazione incondizionatamente.
lProcess = OpenProcess(PROCESS_ALL_ACCESS, 0&, lPid)
lReturn = TerminateProcess(lProcess, 0&)
End Sub
chiedi se non capisci ciauuuuuu