Pagina 1 di 1

[VB6] - Terminare un processo

MessaggioInviato: ven dic 10, 2004 7:17 pm
da SuperRomu
Ciao rieccomi qua!!!! [8D]

[!!!] come posso chiudere un processo per mezzo visual basic 6 ? [!!!]

[sedia] TNX [sedia]

MessaggioInviato: lun dic 13, 2004 8:54 am
da Robby78
....ho fatto questa funzione x terminare un processo che si bloccava; nn è una vera e propria chiusura... è come quando fai "Termina" da task manager: uccide proprio il processo...

Dichiarazioni API:

Declare Function TerminateProcess Lib "Kernel32" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long
Declare Function GetExitCodeProcess Lib "Kernel32" (ByVal hProcess As Long, lpExitCode As Long) As Long
Declare Function OpenProcess Lib "Kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Declare Function GetWindowThreadProcessId Lib "User32" (ByVal hWnd As Long, lpdwProcessId As Long) As Long

Funzione:

Public Sub Termina_Applicazione(sFormTitle As String)
Dim lExitCode As Long
Dim lProcessID As Long
Dim lWindowH As Long
Dim lProcessH As Long

'Ricavo l'Handle della finestra
lWindowH = FindWindow(vbNullString, sFormTitle)
'Ricavo il Process ID
Call GetWindowThreadProcessId(lWindowH, lProcessID)
'Ricavo il Process Handle
lProcessH = OpenProcess(5, False, lProcessID)
'Ricavo l'Exit Code
Call GetExitCodeProcess(lProcessH, lExitCode)
'Chiudo il processo!
Call TerminateProcess(lProcessH, lExitCode)

End Sub

il valore da passare alla Sub è il titolo della form principale del programma da chiudere... se cerki un po' nelle API di windows trovi sicuramente un modo + elegante x farlo ma io nn avevo tempo...
A proposito... se lo trovi postalo qui che può tornare utile a qualcuno!

Ciao