View Full Version : [VB5] Attendere la chiusura dell'applicazione
DanieleC88
09-07-2002, 18:53
Sto creando un programma che usa un'editor esterno di pagine HTML (esempio FrontPage) e, usando la funzione Shell, dovrebbe aspettare la chiusura del programma e riaggiornare il file. Come posso rendere inattivo il mio programma durante la modifica con FrontPage (ed attenderne quindi la chiusura) ?
:confused:
Devi usare anche qualche altra funzione API in conguinzione con la Funzione SHELL.
Ti allego un esempio di codice che lancia un'applicazione ed attende che termini
' *** DICHIARAZIONI
Private Const SYNCHRONIZE = &H100000
Private Const INFINITE = &HFFFF
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, _
ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, _
ByVal dwMilliseconds As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
' *** SUB CHE LANCIA UN APPLIZAZIONE ASPETTANDO CHE TERMINI
Private Sub LanciaApplicazione(ByVal ssApplicazione As String)
Dim lProgID As Long
Dim lHwnd As Long
Dim lRet As Long
sApplicazione = Trim$(sApplicazione)
If Len(sApplicazione) = 0 Then Exit Sub
' *** Recupero l'ID del Task dell'Applicazione lanciata
lProgID = Shell(sApplicazione, vbNormalFocus)
If lProgID <> 0 Then
lHwnd = OpenProcess(SYNCHRONIZE, 0, lProgID)
If lHwnd <> 0 Then
' *** Aspetto che l'Applicazione termini
lRet = WaitForSingleObject(lHwnd, INFINITE)
CloseHandle (lHwnd)
End If
End If
End Sub
P.S: Si puo' anche impostare un tempo di attesa variabile al posto della costante INFINITE
OPS! ... l'indentazione del codice è sparita ma il concetto rimane.
Ciao ;)
Per mantenere l'indentazione usa il tag {code} {/code}
Al posto di {} metti []...
Ciao
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.