Page 1 sur 1

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

Posté : mer. 10 sept. 2008 17:13
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

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

Posté : mer. 10 sept. 2008 21:13
par sylvanie
et si on lance l'exe via un RunAsWait avec l'option logon_flags à 1 est ce que ça va mieux ?

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

Posté : jeu. 11 sept. 2008 22:57
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,

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

Posté : jeu. 11 sept. 2008 23:15
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é.

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

Posté : jeu. 11 sept. 2008 23:44
par Jismar
Je continue de chercher, et si je trouve une solution je vous l'indique.

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

Posté : ven. 12 sept. 2008 20:05
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 ?

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

Posté : mer. 01 oct. 2008 11:00
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.

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

Posté : mer. 01 oct. 2008 18:42
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