ciao sapete come si esegue un comando eseguibile
da un'applicazione VB?
tipo EXEC paolo.exe ....
cioè qual'è il metodo per farlo e che sintassi deve avere?
grazie
ciao sapete come si esegue un comando eseguibile
da un'applicazione VB?
tipo EXEC paolo.exe ....
cioè qual'è il metodo per farlo e che sintassi deve avere?
grazie
Io sono parte di ciò che ho incontrato
esiste una funzione che si chiama SHELL ma vedi sull'MSDN come funzione
P.S.:io aspetto ancora una risposta al mio quesito...
ciao
semplicemente
shell "c:\percorso\file.exe"
ok, grazie ho provato e funziona...
ma come posso lanciare un file.exe e riprendere l'esecuzione in VB dopo che questo è terminato ?
è già fatto in automatico da shell? oppure shell apre un nuovo thread indipendente dal processo di VB che lo ha lanciato ?
grazie
Io sono parte di ciò che ho incontrato
indipendente dal processo VB...
Ti fai ritornare il PID, ti recuperi l'handle del programma e tramite l'API WaitForSingleObject ti metti in attesa finchè non ha terminato.
Più o meno devi fare:
Public Const INFINITE = -1&
Public Declare Function WaitForSingleObject _
Lib "kernel32" (ByVal hHandle As Long, _
ByVal dwMilliseconds As Long) As Long
Public Declare Function OpenProcess Lib _
"kernel32" (ByVal dwAccess As Long, _
ByVal fInherit As Integer, _
ByVal hObject As Long) As Long
Public Sub WaitForProcessToEnd(cmdLine As String)
Dim retVal As Long, pID As Long, pHandle _
As Long
pID = Shell(cmdLine)
pHandle = OpenProcess(&H100000, True, pID)
retVal = WaitForSingleObject(pHandle, INFINITE)
End Sub
Ti basta richiamare WaitForProcessToEnd:
WaitForProcessToEnd "C:\percorso\nomefile.exe"
Se puoi vuoi aspettare per un certo intervallo di tempo sostituisci a INFINITE i millisecondi di attesa.
Ans.