Newsgroup: it.comp.appl.access
Titolo: Verifico se un programma è in esecuzione e...

...se lo è lancio il programma numero 2
...se non lo è lo lancio,
attendo 6 secondi
lancio programma numero 2
Ieri ho sollevato la problematica e l'ho gestita in dos, purtroppo da dos
non posso verificare se un file exe è in esecuzione.
Da VB cosa dovrei fare per rispondere a quanto suddetto?
Buona giornata a tutti,
--
strano...mavero

 strano...mavero
Sul SC c'è un esempio di attesa su esecuzione e fine della stessa.
-- 
Ciao
Pablitomf (Maurizio Facciuti)
Access : Ver.97 - 2K
----------------------------------
http://www.accessgroup.it/
http://www.sitocomune.com/
----------------------------------
Non mi fido molto delle statistiche, perchè un uomo con la testa nel forno
acceso e i piedi nel congelatore statisticamente ha una temperatura media.
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it


sai dirmi qual'è per caso?
Grazie
--
strano...mavero

 sai dirmi qual'è per caso?
Puoi prendere spunto da questa :
è di Alessandro
"Avviare un file eseguibile ed attenderne la fine (2)"
questo l'esempio scaricabile... (adattalo tu alle tue esigenze)
http://www.sitocomune.com/download/API_DetectCloseAppl.zip


[cut]
una cosa simile (in funzionalità) l'avevo scaricata dal SC.
io però dovrei lanciare un file EXE se non è stato ancora lanciato e dopo
tot secondi lanciare un altro EXE.
Mentre se il primo EXE è gia stato lanciato, passo direttamente a lanciare
il secondo EXE senza attendere 6 secondi.
Il tutto deve essere fatto con VB generando un EXE ... e sinceramente mi stò
perdendo in un bicchier d'acqua causa attuale stress mentale (n.d.r. ;o))).
--
strano...mavero

 ha scritto nel messaggio 
news:421f...@x-privat.org...

dal sitocomune o sul sito di Karl
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
Private Const SYNCHRONIZE = &H100000
Private Const INFINITE = &HFFFF
Public Sub RunAppAndWait(FileName As String, WindowsStyle As Integer)
   'Autore: AntoGal
   'avvia un'applicazione e sospende il thread chiamante finchè
   'il processo non termina
   'Accetta:
   ' FileName = nome del file eseguibile
   ' WindowsStyle = modalità di visualizzazione finestra
   ' (costante di Access, vedi la funzione Shell)
   Dim hProg As Long
   hProg = Shell("C:\max\kermit2.bat", WindowsStyle)
   If hProg Then WaitOnProgram (hProg) 'chiama solo se tutto ok
End Sub
Private Sub WaitOnProgram(idProg As Long)
   'codice valido solo per Win32
   Dim hProc As Long, iret As Long
   hProc = OpenProcess(SYNCHRONIZE, False, idProg)
   If hProc <> vbNull Then
      iret = WaitForSingleObject(hProc, INFINITE)
      CloseHandle hProc
   End If
End Sub
MAssimiliano 

grazie,
verifico a partire da questa sera!
--
strano...mavero

 ha scritto nel messaggio 
news:421f1ffc$1...@x-privat.org...

E qui ti volevo!!!
Oltre alla soluzione già suggerita, da (diciamo) ambiente dos hai a 
disposizione gli script wsh:
es.
Dim oWshShell, oExec As Integer
Set oWshShell = CreateObject("WScript.Shell")
oExec = oWshShell.Run("AcroRd32.exe")
msgbox "L'applicazione è stata chiusa!"
Set oWshShell = Nothing
Ciao.
-- 
Sergio MAZZA 


E qui mi ritrovi!
Prima o poi ci arrivo sempre pure io!
Per ora stò installandomi VB6 gentilmente prestatomi da un collega,
poi mi metterò on-line a capofitto e se\quando riesco a combinare 
qualcosa posto tutto per c.c. e pre chiudere il post...spero quanto 
prima a questo punto!
Saluti ;o)
--
strano...mavero

[cut]
Cosě per la cronaca, ho trovato dei comandi dos very very interesting!
tasklist (elenco dei task attivi)
taskkill (per chiudere un task)
questo mi permetterebbe, settando gli opportuni parametri, di valutare 
se attivo un determinato task e di muovermi poi du conseguenza.
Tutto questo l'ho scoperto su windows 2003 server ... che voi sappiate 
sono comandi fruibili anche su un 2000Server\Professional??????
--
strano...mavero

 
[cut]
Ok Windows Script Host mi interessa ... ma l'esempio che mi hai postato 
non va a chiudere l'applicativo AcroRd32.exe, ma lo apre soltanto e 
segnala su message box che l'applicazione è chiusa ...
io voglio vedere se ad esempio pippo.exe è in funzione e in tal caso lo 
chiudo ... come posso farlo tramite wsh?
--
GRazie 1000!
strano...mavero

 strano...mavero
Tramite WSH non credo ci sia la possibilità se non con delle scappatoie tipo 
"...apri un file di testo e ci scrivi l'apertura dell'applicazione" (si 
chiude l'applicazione) "...apri il file di testo e scrivi la chiusura 
dell'applicazione".
Tramite WMI invece c'è la possibilità di sapere se (e quando) 
un'applicazione si chiude; ci sono degli esempi su msdn ci un cosumer di 
eventi che segnala il "killaggio" di un processo...
Ciao.
-- 
Sergio MAZZA 

 ha scritto nel messaggio 
news:421f93cd$0$6312$5fc...@news.tiscali.it...

Boh! Prooovare per credere...
Ciao.
-- 
Sergio MAZZA