Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Visual Basic 6 - Intercettare lo stato di un processo
Forum - Visual Basic 6 - Intercettare lo stato di un processo

Pagine: [ 1 2 3 ] Precedente | Prossimo
Avatar
hemmaus (Normal User)
Pro


Messaggi: 96
Iscritto: 15/07/2009

Segnala al moderatore
Postato alle 22:48
Mercoledì, 15/07/2009
Ciao a tutti,

avrei bisogno di un vostro aiuto.
Sto creando una VPN attraverso un repeater.
Ho sviluppato le tre applicazioni (client, server, repeater)

Ora, ho la necessità di intercettare lo stato di un processo.
Il problema, in breve, è che il processo non comunica più con il repeater però funziona, non va in loop. In breve rimane sospeso ma non fuzniona.
Ho notato che quando ciò accade nel Task Manager l'utilizzo della CPU per quel processo è pari a 0. Esiste un modo per intercettare l'utilizzo della CPU del processo?

Infinite grazie a chiunque voglia aiutarmi.
Ciao.

PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 22:59
Mercoledì, 15/07/2009
Vorrei risponderti ma, sinceramente, non ho capito quasi nulla del problema ...

PM Quote
Avatar
hemmaus (Normal User)
Pro


Messaggi: 96
Iscritto: 15/07/2009

Segnala al moderatore
Postato alle 23:56
Mercoledì, 15/07/2009
Mi spiace, cerco di essere più chiaro.

Ho la neccessita di intercettare tramite codice l'utilizzo della CPU di un processo.
In particolar modo quello che in task manager è identificato con 00.
Vedi immagine:


Ho notato che il processo di mio interesse va in utilizzo CPU 00 e non si muove, ne si termina da se. Una volta che ho intercettato la fase di stallo posso terminarlo.

Mi sono spiegato meglio?
Grazie per la tua pronta risposta.:k:

PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 0:03
Giovedì, 16/07/2009
Testo quotato

Postato originariamente da hemmaus:
Ho la neccessita di intercettare tramite codice l'utilizzo della CPU di un processo.
In particolar modo quello che in task manager è identificato con 00.
...
Ho notato che il processo di mio interesse va in utilizzo CPU 00 e non si muove, ne si termina da se. Una volta che ho intercettato la fase di stallo posso terminarlo.



Calcolare l'uso istantaneo (in percentuale) della CPU di un processo da parte di un programma VB6, non è affatto semplice. E il fatto che sia a 0, fra l'altro, non significa che il processo non stia facendo nulla.

Quello che vorrei capire, per tentare di seguire una strada diversa, è capire di che processo stai parlando, di cosa succede quando dici che il processo "non si muove" e che non "si terminina da sè". Probabilmente l'errore è nel processo di cui stai parlando e conoscerne i dettagli potrebbe significare trovare una soluzione che evita tutto quello che vorresti fare ...

PM Quote
Avatar
hemmaus (Normal User)
Pro


Messaggi: 96
Iscritto: 15/07/2009

Segnala al moderatore
Postato alle 0:11
Giovedì, 16/07/2009
Hai perfettamente ragione, il fatto è che il programma che va in "sospensione" non è mio e non ho il codice.
So solamente che dopo due giorni che gira senza problemi su di un PC (sempre acceso e connesso, PC differenti) si blocca. Basta chiuderlo e riattivarlo perchè si riprenda correttamente.
Di fatto mi occorre solo intercettare quel 00 di task manager.

Grazie

PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 7:42
Giovedì, 16/07/2009
Avendo gli appositi diritti su quel processo (espressi nella documentazione MSDN che segue) puoi aprirlo con la API

GetProcessTimes
http://msdn.microsoft.com/en-us/library/ms683223(VS.85).aspx

ed ottenere il valore del KernelTime e dell'UserTime.

Dopo aver salvato questi valori, puoi chiamare nuovamente questa API per controllare le variazioni e decidere di conseguenza. Se il processo non e' impegnato, i due valori (soprattutto l'UserTime) non dovrebbero variare tra una chiamata e l'altra.

PM Quote
Avatar
hemmaus (Normal User)
Pro


Messaggi: 96
Iscritto: 15/07/2009

Segnala al moderatore
Postato alle 16:10
Giovedì, 16/07/2009
Ti ringrazio ma non gira su VB6.
Ho trovato codice simile per vb6 ci sto lavorando.
Grazie.
:cheer:

Ultima modifica effettuata da hemmaus il 16/07/2009 alle 16:23
PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 17:31
Giovedì, 16/07/2009
Testo quotato

Postato originariamente da hemmaus:

Ti ringrazio ma non gira su VB6.
Ho trovato codice simile per vb6 ci sto lavorando.
Grazie.
:cheer:



Non gira su VB6 cosa ?

Quella e' una API ... va inserita in VB6 in modo opportuno ... e poi gira regolarmente.

PM Quote
Avatar
hemmaus (Normal User)
Pro


Messaggi: 96
Iscritto: 15/07/2009

Segnala al moderatore
Postato alle 1:56
Venerdì, 17/07/2009
Ti ringrazio, ma io non sono riuscito a dichiarare l'API.
Quando dico non gira su VB6 è perchè l'esempip di dichiarazione è per vbnet...

Se vuoi darmi una mano cerca di postarmi qualcosa sul come devo dichiarare.
Grazie in anticipo.:k:

PM Quote
Pagine: [ 1 2 3 ] Precedente | Prossimo