SendKey sur une fenêtre en arrière-plan

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
ApoKLypsWarrior
Niveau 2
Niveau 2
Messages : 16
Enregistré le : jeu. 19 févr. 2015 01:48
Status : Hors ligne

SendKey sur une fenêtre en arrière-plan

#1

Message par ApoKLypsWarrior »

Bonjour,

Après 3 jours de recherche et de test sans arriver à trouver une solution, je décide enfin de venir poser mon problème sur le forum.

Alors voilà, ce que j'aimerai faire est plutôt simple comme ça, mais à l'air très compliquer à réaliser.
Je voudrai simplement envoyé une Key sur une Fenêtre/Application en arrière-plan.

J'ai déjà tenté plusieurs choses. Dont le fameux ControlSend. Mais sans résultat, car dans tout les cas il faut que la fenêtre soit focus/active. A partir du moment où je focus une autre fenêtre, plus rien est envoyé.
Je commence à devenir un peu fou :mrgreen: C'est ce pourquoi je viens vers vous.

Est-ce que quelqu'un d'assez fou a-t-il réussi à faire ce petit truc où aura-t-il le courage d'essayer?

J'ai pu voir que sur d'autre langage, ils importent "user32.dll", mais n'étant pas du tout à l'aise avec l'import de DLL je ne peux clairement pas me pencher là-dessus.

Je vous remercie d'avance pour vos réponses.

Cordialement,
Apo.
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: SendKey sur une fenêtre en arrière-plan

#2

Message par orax »

Dont le fameux ControlSend. Mais sans résultat, car dans tout les cas il faut que la fenêtre soit focus/active.
Pourtant, même si elle n'est pas active, ça devrait quand même marcher.
Run("notepad.exe")
Sleep(2000)
Local $hWnd = WinWait("[CLASS:Notepad]", "", 10)
WinSetState($hWnd, "", @SW_MINIMIZE)
Sleep(2000)
ControlSend($hWnd, "", "Edit1", "TEXTE")
WinSetState($hWnd, "", @SW_RESTORE)
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Avatar du membre
parazitenew
Niveau 7
Niveau 7
Messages : 310
Enregistré le : sam. 10 déc. 2011 15:08
Localisation : Algerie
Status : Hors ligne

Re: SendKey sur une fenêtre en arrière-plan

#3

Message par parazitenew »

Bonsoir,

Le ControlSend() n'a pas besoin que la fenêtre soit active. Vérifie ton script.
ApoKLypsWarrior
Niveau 2
Niveau 2
Messages : 16
Enregistré le : jeu. 19 févr. 2015 01:48
Status : Hors ligne

Re: SendKey sur une fenêtre en arrière-plan

#4

Message par ApoKLypsWarrior »

Bonsoir orax et parazitenew,

Tout d'abord merci pour vos réponses.

Je tiens à confirmer vos dires, cela fonctionne parfaitement bien. Mais... Parce qu'il faut toujours un mais :mrgreen:
Après quelques test, ré-écriture encore et encore, je n'arrive qu'à le faire fonctionner uniquement sur une zone texte éditable. Très étrange tout ça ^^'

EDIT: Si j'active la fenêtre en question, tout marche nickel.
Avatar du membre
parazitenew
Niveau 7
Niveau 7
Messages : 310
Enregistré le : sam. 10 déc. 2011 15:08
Localisation : Algerie
Status : Hors ligne

Re: SendKey sur une fenêtre en arrière-plan

#5

Message par parazitenew »

Elle est faite principalement pour ça. Après on ne sait pas trop ce que t'essaye de faire exactement.
Répondre