Sur un PC sous Window XP avec ActivePerl, un programme d'acquisition
d'un capteur qui s'exécute comme un service, génère régulièrement une
erreur Window qui fait apparaître une fenêtre d'erreur dans laquelle il
faut cliquer sur un bouton oui ou non pour lancer ou non le debogger
Windows. Le problème est que le programme d'acquisition s'arrête et ne
se relance que si on clique sur le bouton non. J'aimerais faire un
programme Perl qui toutes les 5 minutes vérifierait si une fenêtre
d'erreur existe, déterminerait quel est le programme père qui l'a fait
apparaître ou qui récupérerait le texte écrit, et qui cliquerait sur non
ou tuerait la fenêtre.
Toutes suggestions concernant le(s) module(s) à utiliser et la manière
de faire serait les bienvenue.
Cordialement,
--
Dr. POINTIN Yves B.
perl -e "\$_='.frontermpclv-bunigc.@optinoinY.P';1 while
s/(.{3})(.{3})?/\$_{\$2}=\$1,\$2/e; ; print while \$_=\$_{\$_};"
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
ebrnospam
Le 22/09/2012 10:14, Yves Pointin a écrit :
perl -e "$_='';1 while s/(.{3})(.{3})?/$_{$2}=$1,$2/e; ; print while $_=$_{$_};"
Je vois mal comment vous allez pouvoir identifier la fenêtre qui pose le problème parmi tant d'autres ... aussi voici ce que je ferai, j'utiliserai ce module :
Certains process peuvent bien sûr s'exécuter de par eux même mais un filtre permettra de ne pas en tenir compte très rapidement, celui qui restera sera celui qui provoque l'erreur.
Sinon pour l'identification du père ...
Process Explorer is your friend ... http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx
Voilà j'espère avoir pu vous aider ... même si ça ne répond pas exactement à la demande.
Eric BERTHOMIER http://eric.berthomier.free.fr
Le 22/09/2012 10:14, Yves Pointin a écrit :
perl -e "$_='.frontermpclv-bunigc.@optinoinY.P';1 while
s/(.{3})(.{3})?/$_{$2}=$1,$2/e; ; print while $_=$_{$_};"
Je vois mal comment vous allez pouvoir identifier la fenêtre qui pose le
problème parmi tant d'autres ... aussi voici ce que je ferai,
j'utiliserai ce module :
Certains process peuvent bien sûr s'exécuter de par eux même mais un
filtre permettra de ne pas en tenir compte très rapidement, celui qui
restera sera celui qui provoque l'erreur.
Sinon pour l'identification du père ...
Process Explorer is your friend ...
http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx
Voilà j'espère avoir pu vous aider ... même si ça ne répond pas
exactement à la demande.
perl -e "$_='';1 while s/(.{3})(.{3})?/$_{$2}=$1,$2/e; ; print while $_=$_{$_};"
Je vois mal comment vous allez pouvoir identifier la fenêtre qui pose le problème parmi tant d'autres ... aussi voici ce que je ferai, j'utiliserai ce module :
Certains process peuvent bien sûr s'exécuter de par eux même mais un filtre permettra de ne pas en tenir compte très rapidement, celui qui restera sera celui qui provoque l'erreur.
Sinon pour l'identification du père ...
Process Explorer is your friend ... http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx
Voilà j'espère avoir pu vous aider ... même si ça ne répond pas exactement à la demande.
Eric BERTHOMIER http://eric.berthomier.free.fr
Yves Pointin
Le 26/09/2012 22:22, ebrnospam a écrit :
Le 22/09/2012 10:14, Yves Pointin a écrit :
perl -e "$_='';1 while s/(.{3})(.{3})?/$_{$2}=$1,$2/e; ; print while $_=$_{$_};"
Je vois mal comment vous allez pouvoir identifier la fenêtre qui pose le problème parmi tant d'autres ... aussi voici ce que je ferai, j'utiliserai ce module :
Certains process peuvent bien sûr s'exécuter de par eux même mais un filtre permettra de ne pas en tenir compte très rapidement, celui qui restera sera celui qui provoque l'erreur.
Sinon pour l'identification du père ...
Process Explorer is your friend ... http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx
Voilà j'espère avoir pu vous aider ... même si ça ne répond pas exactement à la demande.
Eric BERTHOMIER http://eric.berthomier.free.fr
Bonjour,
Merci de ces indications. En fait, j'ai résolu mon problème avec Win32::GuiTest
use Win32::GuiTest qw( FindWindowLike SetForegroundWindow PushChildButton);
où le code 7 du bouton "Non" a été trouvé en utilisant winspy http://www.catch22.net/software/winspy.asp
Cordialement, -- Dr. POINTIN Yves B. perl -e "$_='';1 while s/(.{3})(.{3})?/$_{$2}=$1,$2/e; ; print while $_=$_{$_};"
Le 26/09/2012 22:22, ebrnospam a écrit :
Le 22/09/2012 10:14, Yves Pointin a écrit :
perl -e "$_='.frontermpclv-bunigc.@optinoinY.P';1 while
s/(.{3})(.{3})?/$_{$2}=$1,$2/e; ; print while $_=$_{$_};"
Je vois mal comment vous allez pouvoir identifier la fenêtre qui pose le
problème parmi tant d'autres ... aussi voici ce que je ferai,
j'utiliserai ce module :
Certains process peuvent bien sûr s'exécuter de par eux même mais un
filtre permettra de ne pas en tenir compte très rapidement, celui qui
restera sera celui qui provoque l'erreur.
Sinon pour l'identification du père ...
Process Explorer is your friend ...
http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx
Voilà j'espère avoir pu vous aider ... même si ça ne répond pas
exactement à la demande.
Eric BERTHOMIER
http://eric.berthomier.free.fr
Bonjour,
Merci de ces indications. En fait, j'ai résolu mon problème avec
Win32::GuiTest
use Win32::GuiTest qw( FindWindowLike
SetForegroundWindow
PushChildButton);
perl -e "$_='';1 while s/(.{3})(.{3})?/$_{$2}=$1,$2/e; ; print while $_=$_{$_};"
Je vois mal comment vous allez pouvoir identifier la fenêtre qui pose le problème parmi tant d'autres ... aussi voici ce que je ferai, j'utiliserai ce module :
Certains process peuvent bien sûr s'exécuter de par eux même mais un filtre permettra de ne pas en tenir compte très rapidement, celui qui restera sera celui qui provoque l'erreur.
Sinon pour l'identification du père ...
Process Explorer is your friend ... http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx
Voilà j'espère avoir pu vous aider ... même si ça ne répond pas exactement à la demande.
Eric BERTHOMIER http://eric.berthomier.free.fr
Bonjour,
Merci de ces indications. En fait, j'ai résolu mon problème avec Win32::GuiTest
use Win32::GuiTest qw( FindWindowLike SetForegroundWindow PushChildButton);