In un modulo:Dove ti serve:codice:Option Explicit 'Chiude un programma. Private Type THREADENTRY32 dwSize As Long cntUsage As Long th32ThreadID As Long th32OwnerProcessID As Long tpBasePri As Long tpDeltaPri As Long dwFlags As Long End Type Private Const TH32CS_SNAPTHREAD As Long = &H4& Private Const WM_QUIT As Long = &H12 Private Declare Function FindWindow Lib "User32.dll" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Declare Function GetWindowThreadProcessId Lib "User32.dll" (ByVal hwnd As Long, lpdwProcessId As Long) As Long Private Declare Function CreateToolhelp32Snapshot Lib "Kernel32.dll" (ByVal dwFlags As Long, ByVal th32ProcessID As Long) As Long Private Declare Function Thread32First Lib "Kernel32.dll" (ByVal HSnapShot As Long, ByRef EntryModule As THREADENTRY32) As Long Private Declare Function Thread32Next Lib "Kernel32.dll" (ByVal HSnapShot As Long, ByRef EntryModule As THREADENTRY32) As Long Private Declare Function PostThreadMessage Lib "User32.dll" Alias "PostThreadMessageA" (ByVal idThread As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long Private Declare Function CloseHandle Lib "Kernel32.dll" (ByVal hObject As Long) As LongPer cercare il processo:codice:Function CloseProcess(pID As Long) As Boolean 'Chiude tutti i thread del processo. Dim EntryThread As THREADENTRY32 Dim HSnapShot As Long, RetVal As Long 'Recupera tutti i thread del processo. HSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD, pID) If HSnapShot <> -1 Then EntryThread.dwSize = Len(EntryThread) RetVal = Thread32First(HSnapShot, EntryThread) Do While RetVal If EntryThread.th32OwnerProcessID = pID Then 'Invia il messaggio di chiusura. Call PostThreadMessage(EntryThread.th32ThreadID, WM_QUIT, 0, 0) End If RetVal = Thread32Next(HSnapShot, EntryThread) Loop Call CloseHandle(HSnapShot) End If End FunctionSpero fosse quello che cercavicodice:Private Sub CloseWindProc(sText As String) 'Chiude la finestra specificata. Dim H As Long, ID As Long 'Recupera l'handle della finestra. H = FindWindow(vbNullString, sText) 'Recupera l'identificatore del thread associato alla finestra. Call GetWindowThreadProcessId(H, ID) If MsgBox("Chiudere '" & sText & "'?", vbInformation Or vbYesNo, "Chiudi Processo") = vbYes Then CloseProcess (ID) End Sub