[R] Problème simulation clavier avec un exe lancé en remote

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Jismar
Niveau 1
Niveau 1
Messages : 7
Enregistré le : mer. 10 sept. 2008 13:41
Status : Hors ligne

[R] Problème simulation clavier avec un exe lancé en remote

#1

Message par Jismar »

Bonjour,

Je lance un programme DOS via PHP. Celui-ci se lance bien dans une fenêtre de commande.
Je n'arrive pas à lancer des évènements clavier vers ce programme car la fenêtre DOS est inactive (sans focus). La fonction WinActivate ne permet pas de mettre le focus dessus.

Comportement intéressant : si j' "observe" le programme se lancer sur le serveur, en m'y connectant en bureau à distance (je suis avec XP), tout se passe bien : le programme DOS se lance avec le focus. Si je laisse le programme se lancer mais avec le bureau à distance minimisé, le serveur ne donne pas le focus sur la fenêtre DOS.

Merci d'avance
Modifié en dernier par Jismar le mer. 01 oct. 2008 11:01, modifié 1 fois.
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1556
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

Re: [..] Problème simulation clavier avec un exe lancé en remote

#2

Message par sylvanie »

et si on lance l'exe via un RunAsWait avec l'option logon_flags à 1 est ce que ça va mieux ?
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
Jismar
Niveau 1
Niveau 1
Messages : 7
Enregistré le : mer. 10 sept. 2008 13:41
Status : Hors ligne

Re: [..] Problème simulation clavier avec un exe lancé en remote

#3

Message par Jismar »

Merci pour ta réponse ; il y a deux choses :
Le fait de m'identifier avec le bon utilisateur avec RunAs et l'option logon_flags à 1 ne change rien.
Pourquoi utiliser RunAsWait ? Une fois l'exécutable lancé, comment puis-je alors déclencher des évènements clavier si je dois attendre que celui-ci se termine ?

Merci,
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1556
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

Re: [..] Problème simulation clavier avec un exe lancé en remote

#4

Message par sylvanie »

Bon, et bien là pour le premier point, jen 'ai rien d'autre ...
Pour le runaswait, c'était arbitraire. Si tu as besoins de continuer après lancement, il est certain que c'est runas le plus indiqué.
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
Jismar
Niveau 1
Niveau 1
Messages : 7
Enregistré le : mer. 10 sept. 2008 13:41
Status : Hors ligne

Re: [..] Problème simulation clavier avec un exe lancé en remote

#5

Message par Jismar »

Je continue de chercher, et si je trouve une solution je vous l'indique.
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1556
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

Re: [..] Problème simulation clavier avec un exe lancé en remote

#6

Message par sylvanie »

Bonsoir,
je viens de songer à une alternative potentielle :
Au lieu de faire des snd vers une fenêtre cmd.exe, pourquoi ne pas lui envoyer les infos via StdinWrite ?
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
Jismar
Niveau 1
Niveau 1
Messages : 7
Enregistré le : mer. 10 sept. 2008 13:41
Status : Hors ligne

Re: [..] Problème simulation clavier avec un exe lancé en remote

#7

Message par Jismar »

Le flux StdIn ne semble pas correspondre aux entrées clavier. En tout cas cela ne fonctionne pas.

J'ai finalement trouvé une solution : j'ai utilisé un ControlSend en ciblant ma fenêtre de commande DOS et en envoyant vers le contrôle n°0. J'ai toutefois été bloqué par un comportement très curieux : en souhaitant faire ALT+T comme évènement clavier, la chaîne "!t" ne fonctionnait pas, seul le caractère "t" passait. Mais en utilisant {ALTDOWN}t{ALTUP}, cela fonctionne. Une explication ???

Merci pour toutes vos précédentes réponses.
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1556
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

Re: [R] Problème simulation clavier avec un exe lancé en remote

#8

Message par sylvanie »

c'est peut être du au fait que controlsend est moins fiable sur un controle de type commande :
ControlSend is only unreliable for command prompts as that works differently to normal windows (seems to check physical states rather than accepting the keystroke messages). For normal windows ControlSend should be way more reliable than a normal Send - and yes it does send shift, ctrl, alt etc.
du coups les altdown et up fonctionnent sûrement mieux que le raccourcis ! du mode 0
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
Répondre