Punto informatico Network
Login Esegui login | Non sei registrato? Iscriviti ora (è gratuito!)
Username: Password:
  • Annuncio Pubblicitario

capire quando un processo è terminato

Il forum per tutti i developer. Leggere attentamente il regolamento di sezione prima di postare.

capire quando un processo è terminato

Messaggioda pol86 » lun dic 12, 2005 5:53 pm

Ciao a tutti , qualcuno sa dirmi come faccio a capire quando un processo, nel mio caso il prompt di dos è terminato.
Io apro il prompt da vb con questa riga di comando:
Shell "cmd /c netsh -c interface dump >c:\prova.txt", vbNormalFocus
e vorrei indicare nella form dove è contenuta tale riga, il suo stato, ossia se è ancora in esecuzione(e quindi mettere un mex del tipo "wait") o è già terminata.
Vi ringrazio per la vostra attenzione ciao
Avatar utente
pol86
Neo Iscritto
Neo Iscritto
 
Messaggi: 10
Iscritto il: sab dic 10, 2005 6:16 pm

Messaggioda morskott » lun dic 12, 2005 9:22 pm

non puoi fare una join su quel processo?
Avatar utente
morskott
Aficionado
Aficionado
 
Messaggi: 147
Iscritto il: lun nov 03, 2003 7:40 pm

Messaggioda Silver Black » mar dic 13, 2005 11:29 am

API WaitForSingleObject:

Dichiarazioni:

Codice: Seleziona tutto
Private Type STARTUPINFO
    cb As Long
    lpReserved As String
    lpDesktop As String
    lpTitle As String
    dwX As Long
    dwY As Long
    dwXSize As Long
    dwYSize As Long
    dwXCountChars As Long
    dwYCountChars As Long
    dwFillAttribute As Long
    dwFlags As Long
    wShowWindow As Integer
    cbReserved2 As Integer
    lpReserved2 As Long
    hStdInput As Long
    hStdOutput As Long
    hStdError As Long
End Type
Private Type PROCESS_INFORMATION
    hProcess As Long
    hThread As Long
    dwProcessID As Long
    dwThreadID As Long
End Type
Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, _
    ByVal dwMilliseconds As Long) As Long
Private Declare Function CreateProcessA Lib "kernel32" (ByVal lpApplicationName _
    As Long, ByVal lpCommandLine As String, ByVal lpProcessAttributes As Long, ByVal _
    lpThreadAttributes As Long, ByVal bInheritHandles As Long, ByVal dwCreationFlags _
    As Long, ByVal lpEnvironment As Long, ByVal lpCurrentDirectory As Long, _
    lpStartupInfo As STARTUPINFO, lpProcessInformation As PROCESS_INFORMATION) _
    As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Const NORMAL_PRIORITY_CLASS = &H20&
Private Const INFINITE = -1&


Utilizzo:
Codice: Seleziona tutto
    Dim Proc As PROCESS_INFORMATION
    Dim Start As STARTUPINFO
    Dim Ret As Long
   
    Start.cb = Len(Start)
   
    'Shell the Application:
    Ret = CreateProcessA(0&, cmdLine, 0&, 0&, 1&, NORMAL_PRIORITY_CLASS, 0&, 0&, Start, Proc)
   
    'Wait for the shelled application to finish:
    Ret = WaitForSingleObject(Proc.hProcess, INFINITE)
    Ret = CloseHandle(Proc.hProcess)


Esempio:
Codice: Seleziona tutto
Private Sub Form_Load()

    ExecCmd "notepad.exe"
    MsgBox "Appplicazione terminata!!!", vbExclamation, "Shell&Wait"

End Sub


Ciao!
Sergio Pappalardo aka Silver Black
https://www.silvercybertech.com
Avatar utente
Silver Black
Silver Member
Silver Member
 
Messaggi: 1148
Iscritto il: gio gen 06, 2005 8:50 pm
Località: Italia


Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 9 ospiti

Powered by phpBB © 2002, 2005, 2007, 2008 phpBB Group
Traduzione Italiana phpBB.it

megalab.it: testata telematica quotidiana registrata al Tribunale di Cosenza n. 22/09 del 13.08.2009, editore Master New Media S.r.l.; © Copyright 2008 Master New Media S.r.l. a socio unico - P.I. 02947530784. GRUPPO EDIZIONI MASTER Spa Tutti i diritti sono riservati. Per la pubblicità: Master Advertising