PDA

View Full Version : Programma/Winamp


cla.longa
25-06-2004, 10:50
Salve a tutti vi espongo il mio quesito:

In un mio progamma creato con Visual Basic, tramite un bottone di comando, lancio una shell che mi apre l'eseguibile di Winamp (creando successivamente un processo). Il mio problema è questo: sempre con un pulsante di comando chiudo il processo (almeno penso) ma l'eseguibile di winamp è sempre attivo. Come faccio ad interromperlo (o non c'è possibilità)?.

Grazie (veramente obbligato!)

matpez
25-06-2004, 12:55
Wella chi si rivede...

Il gioco è molto semplice, basta che tu lanci con shell appunto il tuo exe, e salvo handle che ti crea in una varibile di tipo long, es:


hWnd = Shell("D:\Programmi\Winamp3\Winamp3.exe", vbNormalFocus)


Dopo di che utilizzerai quella varibile per killare il processo con questa funzione:


Private Const PROCESS_ALL_ACCESS As Long = &H1F0FFF

Private Declare Function OpenProcess Lib "kernel32.dll" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function TerminateProcess Lib "kernel32.dll" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long

Public Sub CloseProcess(ByVal lIDProcess As Long)

Dim lProcess As Long


'chiudo il processo
lProcess = OpenProcess(PROCESS_ALL_ACCESS, 0&, lIDProcess)
Call TerminateProcess(lProcess, 0&)

End Sub


Miraccomando se hai due bottoni differenti, devi dichiarare la tua variabile in cima al form, così è visibile per tutta la form, altrimenti perde visibilità da una rountine ad un altra!

Ciaooooooooooooooo :p