Détection popup windows

cs_Thez Messages postés 21 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 12 mars 2009 - 8 nov. 2007 à 16:59
cs_Thez Messages postés 21 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 12 mars 2009 - 14 nov. 2007 à 13:42
Bonjour,

Actuellement je développe une application win32 permettant de monitorer
l'activité système d'un châssis CPCI sous win2k. Cette application est en C++ et
me permet de voir differentes infos (charge CPU, mémoire, nb process ...) d'un
parc assez important (plus de 100 machines).

Mon problème :
---------------------
Parfois, pour faire un shutdown, je me retrouve bloqué sur un de ces châssis,
par une popup. Tant qu'elle n'est pas fermée, je ne peut rien faire.
Il faut que je me loggue avec VNC, que je tue cette popup et que je passe au suivant.

Pouvez-vous me dire s'il est possible de détecter qu'une popup est présente, sans
avoir à se logguer ?
Toute info en C/C++ (sans .NET ni MFC) me sera bien utile.

D'avance merci.
Thez

-------------------------------------------------------------------------------------------------------
il y IO type de personnes, celles qui comprennent le binaire et celles non !

3 réponses

cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
9 nov. 2007 à 16:22
Salut,


Pour détecter une fenêtre, tu as des fonctions d'énumération, telle EnumWindows.


Dans ton cas, si la popup a toujours le même titre, ou qu'elle appartient à une classe bien particulière, tu peux faire un FindWindow.


Pour la fermer... Bin ça dépend. A vu de nez je dirais qu'il faut que tu essaie de t'en sortir avec un SendMessage. En effet, cette popup risque d'appartenir à un gros processus qu'il ne faudrait pas killer.


Avec le SendMessage, tu peux envoyer une touche (Par exemple echap, ou entrée, qui va activer le bouton par défaut), ou demander à la fenêtre de se fermer.


Après, il va falloire que tu t'arrange pour détecter la popup avant que
ton appli soit terminer par le système qui est en train de s'arrêter...

<hr size="2" width="100%" />3ème année en ecole d'ingé d'info cherche stage de 4 mois à partir du 01/04/08
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
9 nov. 2007 à 18:44
Attention avec SendMessage sur un autre processus qu'on ne domine pas, vaut mieux du non bloquant.
PostMessage(hwnd, WM_CLOSE, 0, 0);

ciao...
BruNews, MVP VC++
0
cs_Thez Messages postés 21 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 12 mars 2009
14 nov. 2007 à 13:42
Bonjour

Merci à vous pour vos conseils !
J'ai différentes choses sur le feu donc je posterai un message
dès que j'aurais mis tout ça en place.

Bonne continuation

----------------------------------------------------------------------------------------------------------
il y IO type de personnes, celles qui comprennent le binaire et celles non !
0
Rejoignez-nous