Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Détecter qu'un logiciel a fini de mouliner ?

5 réponses
Avatar
Patrick \Zener\ Brunet
Bonjour.

Je me suis attaqué (je sais...) au problème délicat de la gestion d'énergie
sur PC/Win2000 sans intervention de l'utilisateur.

Mon problème du jour est de détecter qu'un logiciel (genre scan système par
l'antivirus) a terminé son travail, ce qui n'est pas équivalent à la fin de
ce logiciel.
En général il affiche un résultat du genre "### problems found, you can
click OK".
Donc il faudrait pouvoir détecter le moment où ce logiciel - qui n'a pas été
prévu pour être interopérable - a fini de mouliner des fichiers, pour en
déduire qu'il est prêt à répondre favorablement à un WM_CLOSE dans le cadre
d'un Shutdown.

A priori on pourrait détecter la fin du process "worker", s'il est différent
du process "interface", mais si ce n'est pas le cas, c'est pas bon.

Si cela n'est pas possible, il ne restera plus qu'à faire de l'analyse
(sommaire) de bitmap pour détecter le moment où il affiche enfin son bouton
OK :-[[[

Avez-vous des infos pouvant faciliter cette cuisine ?

Merci d'avance.

Cordialement,
PZB

5 réponses

Avatar
Aurélien REGAT-BARREL
Pourquoi ne pas se fier à l'activité disque / CPU ? voir filemon, pmon de
sysinternals.

--
Aurélien REGAT-BARREL
Avatar
Patrick \Zener\ Brunet
Bonjour.

"Aurélien REGAT-BARREL" a écrit dans le
message de news:40f65612$0$3732$
Pourquoi ne pas se fier à l'activité disque / CPU ? voir filemon, pmon de
sysinternals.




Effectivement, j'envisage de faire une pondération sur l'ensemble de
l'activité système : accès disque, %CPU, accès mémoire, pour pouvoir être
sûr que le bin's est bien calmé, et pas en phase de calcul interne (je
voudrais une solution généraliste, et pas trop dépendante du process à
surveiller).

Mais bon, c'est pas non plus un debugger que je veux écrire, alors je
cherche la bonne solution pour faire aussi léger que possible.

Filemon, dites-vous ? Merci, je vais creuser ...

Cordialement,

PSB
Avatar
Remi Thomas
>
Effectivement, j'envisage de faire une pondération sur l'ensemble de
l'activité système : accès disque, %CPU, accès mémoire, pour pouvoir
être sûr que le bin's est bien calmé, et pas en phase de calcul
interne (je voudrais une solution généraliste, et pas trop dépendante
du process à surveiller).

Mais bon, c'est pas non plus un debugger que je veux écrire, alors je
cherche la bonne solution pour faire aussi léger que possible.

Filemon, dites-vous ? Merci, je vais creuser ...

Cordialement,

PSB



Si tu peux le faire en .NET c'est trois lignes de code pour connaître le
taux d'utilisation CPU d'un process.
Une bonne vingtaine de ligne en C++/Win32

Rémi

--
Rémi Thomas - MVP Visual Studio .NET
Développeur Windows indépendant
http://www.xtware.com/cv
Avatar
Christian ASTOR
Patrick "Zener" Brunet a écrit:


Effectivement, j'envisage de faire une pondération sur l'ensemble de
l'activité système : accès disque, %CPU, accès mémoire, pour pouvoir être
sûr que le bin's est bien calmé, et pas en phase de calcul interne (je
voudrais une solution généraliste, et pas trop dépendante du process à
surveiller).



Si c'est comme le TaskMgr, il utilise
NtQuerySystemInformation() (que ce soit par process
(SystemProcessInformation) ou pour le CPU
(SystemBasicInformation-SystemProcessorPerformanceInformation))
Avatar
Patrick \Zener\ Brunet
Bonjour;

et Merci++++

Je vais me faire un petit utilitaire à base de ça je crois.

Cordialement,
PZB

"Christian ASTOR" a écrit dans le message de
news:40f6d0e3$0$315$
Patrick "Zener" Brunet a écrit:


> Effectivement, j'envisage de faire une pondération sur l'ensemble de
> l'activité système : accès disque, %CPU, accès mémoire, pour pouvoir


être
> sûr que le bin's est bien calmé, et pas en phase de calcul interne (je
> voudrais une solution généraliste, et pas trop dépendante du process à
> surveiller).

Si c'est comme le TaskMgr, il utilise
NtQuerySystemInformation() (que ce soit par process
(SystemProcessInformation) ou pour le CPU
(SystemBasicInformation-SystemProcessorPerformanceInformation))