PDA

View Full Version : Vb e processi


visual_b
02-06-2004, 09:09
C'č un modo di gestire i processi in vb?
Esempio: faccio partire pippo.exe con questa riga di codice

shell "c:\pippo.exe"

poi posso chiuderlo con un altro comando?

E dopo il path del comando shell ho visto in alcuni codici un numero (Es. shell "....." , 1),cos'č?

matpez
02-06-2004, 11:24
I numeri dopo la virgola della funzione shell servono per gestire com'č viene lanciato il programma, questi sono i parametri:

vbHide (0): La finestra č nascosta e lo stato attivo viene passato alla finestra nascosta.

vbNormalFocus (1): La finestra č attivata e vengono ripristinate la dimensione e la posizione originali.

vbMinimizedFocus (2): La finestra č ridotta a icona e attivata.

vbMaximizedFocus (3): La finestra č ingrandita e attivata.

vbNormalNoFocus (4): Vengono ripristinate le dimensioni e posizione precedenti della finestra. La finestra attiva resta attiva.

vbMinimizedNoFocus (6): La finestra č ridotta a icona. La finestra attiva resta attiva.

matpez
02-06-2004, 11:27
Quando lanci una programma con la Shell ti conviene creare una variabile long cosė:

Dim lRet as Long

lRet=Shell(....)

Cosė ti ritorno il numero dell'ID del processo, se torna 0 il programma non č partito...

Con questo numeo tu puoi killare appunto il processo cosė:


Option Explicit

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

visual_b
02-06-2004, 11:56
originariamente inviato da matpez


Quando lanci una programma con la Shell ti conviene creare una variabile long cosė:

Dim lRet as Long

lRet=Shell(....)

Cosė ti ritorno il numero dell'ID del processo, se torna 0 il programma non č partito...

Con questo numero tu puoi killare appunto il processo


funzica anche questo!!!!

Mi hai gia aiutato 3 volte e in pratica il programma me lo hai finito tu! Grazie ancora, 6 una piccola enciclopedia

matpez
02-06-2004, 12:25
ehheheheh

Prego :p

Se qlc la so te la dico :D