Discussione:
Monitorare stato di un processo
(troppo vecchio per rispondere)
Michele
2006-09-07 14:52:03 UTC
Permalink
Ciao,
ho la necessità di monitorare se un processo (per es. winword.exe) è attivo
e non bloccato.
Grazie.



--- posted by geoForum on http://www.delphiedintorni.it
Andrea Laforgia
2006-09-07 15:25:03 UTC
Permalink
Post by Michele
ho la necessità di monitorare se un processo (per es. winword.exe) è
attivo e non bloccato.
Che intendi per "attivo e non bloccato" ?
--
questo articolo e` stato inviato via web dal servizio gratuito
http://www.newsland.it/news segnala gli abusi ad ***@newsland.it
Michele
2006-09-08 08:34:58 UTC
Permalink
Post by Andrea Laforgia
Che intendi per "attivo e non bloccato" ?
Hai ragione sono stato frettoloso nella spiegazione.
Avrei necessità di spaere se un processo è attivo ed , come da task
manager, "in esecuzione" non in "non risponde". Se poi il programma
è "non risponde" per un ciclo o perchè è prorio bloccato poco importa.
Per sapere solamente se un ciclo è attivo (quindi presente nella lista
dei processi utilizzo una routine che fa uso di OpenProcess ciclando sui
task ma ciò non mi basta.
Sto cercando di risolvere il problema con varie funzioni tipo
WaitForSingleObject(che è però bloccante a meno di non usare un thread
secondario), GetExitCodeProcess, e altre ma non ottengo quello che
voglio ma solo eventualmente se il task è in esecuzione ma non se è
bloccato o meno.
Grazie.



--- posted by geoForum on http://www.delphiedintorni.it
Andrea Laforgia
2006-09-08 09:52:03 UTC
Permalink
Post by Michele
Avrei necessità di spaere se un processo è attivo ed , come da task
manager, "in esecuzione" non in "non risponde". Se poi il programma
è "non risponde" per un ciclo o perchè è prorio bloccato poco importa.
Attento: quella informazione è riferita ad una *finestra*, non al processo.
Non è possibile determinare se un processo è "bloccato" (es.: in loop
infinito). Per una finestra viene riportato "Non risponde", se dopo 5
secondi non viene catturato il messaggio WM_NULL inviato dal TM, quindi tu
puoi fare la stessa cosa: un SendMessageTimeout con un timeout di 5
secondi di un WM_NULL verso quella finestra. Se la chiamata scade per
timeout, allora la finestra "non risponde".
--
questo articolo e` stato inviato via web dal servizio gratuito
http://www.newsland.it/news segnala gli abusi ad ***@newsland.it
Michele
2006-09-08 14:14:11 UTC
Permalink
Grazie intanto per l'attenzione.
Post by Andrea Laforgia
Attento: quella informazione è riferita ad una *finestra*, non al processo.
Non è possibile determinare se un processo è "bloccato" (es.: in loop
infinito). Per una finestra viene riportato "Non risponde", se dopo 5
secondi non viene catturato il messaggio WM_NULL inviato dal TM, quindi tu
puoi fare la stessa cosa: un SendMessageTimeout con un timeout di 5
secondi di un WM_NULL verso quella finestra. Se la chiamata scade per
timeout, allora la finestra "non risponde".
Avevo a suo tempo navigando su msdn qualcosa di simile o forse proprio
questa funzione (invio di messaggio con timeout) ma non sono riuscito a
ripescarlo. Provo e riferisco.



--- posted by geoForum on http://www.delphiedintorni.it
Andrea Laforgia
2006-09-08 14:03:01 UTC
Permalink
Avevo a suo tempo navigando su msdn qualcosa di simile[...]
E' necessariamente questa funzione perché il meccanismo mi è stato
riferito da Jeffrey Richter.
--
questo articolo e` stato inviato via web dal servizio gratuito
http://www.newsland.it/news segnala gli abusi ad ***@newsland.it
Michele
2006-09-08 15:32:28 UTC
Permalink
Post by Andrea Laforgia
Avevo a suo tempo navigando su msdn qualcosa di simile[...]
E' necessariamente questa funzione perché il meccanismo mi è stato
riferito da Jeffrey Richter.
Adesso cercando su google "delphi + SendMessageTimeout" ho trovato diversi
link tra i quali un tuo post in risposta ad un quesito uguale al mio e
questo link che propone anche un'altra soluzione e che per completezza
segnalo: http://www.swissdelphicenter.ch/torry/showcode.php?id=910.
Mi scuso se ho richiesto una cosa già trattata ma ieri con google cercavo
con termini diversi e mi ero intestardito su OpenProcess et similia.
Ciao



--- posted by geoForum on http://www.delphiedintorni.it

Continua a leggere su narkive:
Loading...