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
[R] Problème simulation clavier avec un exe lancé en remote
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
[R] Problème simulation clavier avec un exe lancé en remote
Modifié en dernier par Jismar le mer. 01 oct. 2008 11:01, modifié 1 fois.
- sylvanie
- 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
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.
Re: [..] Problème simulation clavier avec un exe lancé en remote
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,
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,
- sylvanie
- 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
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é.
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.
Re: [..] Problème simulation clavier avec un exe lancé en remote
Je continue de chercher, et si je trouve une solution je vous l'indique.
- sylvanie
- 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
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 ?
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.
Re: [..] Problème simulation clavier avec un exe lancé en remote
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.
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.
- sylvanie
- 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
c'est peut être du au fait que controlsend est moins fiable sur un controle de type commande :
du coups les altdown et up fonctionnent sûrement mieux que le raccourcis ! du mode 0ControlSend 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.
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.