Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Contrôle d'une application extérieure

2 réponses
Avatar
Gloops
Bonjour tout le monde,

J'aimerais déclencher un enregistrement par une application extérieure.
Cette application réalise très bien l'enregistrement lorsqu'on le
déclenche à la main, enfin à coups de souris et clavier, mais j'ai une
version qui ne gère pas bien le déclenchement par minuterie (la
minuterie étant une application qui permet de saisir à quelle heure on
veut enregistrer). La version qui le fait bien plante sans arrêt, alors
on oublie.

J'ai repéré la position du bouton qui ouvre le menu de l'application,
alors avec WindowFromPoint j'obtiens son hWnd.
Ainsi, je peux cliquer dessus avec

SendMessage hwnd, WM_LBUTTONDOWN, 0, Null
For N = 1 To 10
DoEvents
Next
SendMessage hwnd, WM_LBUTTONUP, 0, Null

Et miracle, le menu apparaît.

L'ennui, c'est que la suite de mes instructions est ignorée (qu'il
s'agisse de clics ou de SendKeys) tant que le menu est ouvert, donc pour
cliquer sur une commande, c'est mal barré.

N'y aurait-il pas une astuce ?

2 réponses

Avatar
Unknown
Ne reinvnete pas la roue. Ce type de programme existe comme par exemple
WINTASK qui fonctionne très bien

"Gloops" a écrit :

Bonjour tout le monde,

J'aimerais déclencher un enregistrement par une application extérieure.
Cette application réalise très bien l'enregistrement lorsqu'on le
déclenche à la main, enfin à coups de souris et clavier, mais j'ai une
version qui ne gère pas bien le déclenchement par minuterie (la
minuterie étant une application qui permet de saisir à quelle heure on
veut enregistrer). La version qui le fait bien plante sans arrêt, alors
on oublie.

J'ai repéré la position du bouton qui ouvre le menu de l'application,
alors avec WindowFromPoint j'obtiens son hWnd.
Ainsi, je peux cliquer dessus avec

SendMessage hwnd, WM_LBUTTONDOWN, 0, Null
For N = 1 To 10
DoEvents
Next
SendMessage hwnd, WM_LBUTTONUP, 0, Null

Et miracle, le menu apparaît.

L'ennui, c'est que la suite de mes instructions est ignorée (qu'il
s'agisse de clics ou de SendKeys) tant que le menu est ouvert, donc pour
cliquer sur une commande, c'est mal barré.

N'y aurait-il pas une astuce ?




Avatar
Gloops
Oui, bien sûr ...
Si je me rappelle bien il y a Winbatch, aussi, qui sait activer une
commande de menu déroulant.
Mais ça fait un peu comme se faire dépasser par un vélo dans une voiture
de course, non ? Si il faut changer de langage à chaque fois qu'on veut
faire autre chose ...
J'ai trouvé une piste du côté des API (TrackPopupMenu) mais qui
déclenche une commande de menu de l'application depuis laquelle on
l'appelle. A creuser ...
______________________________________
Unknown a écrit, le 25/10/2004 10:31 :

Ne reinvnete pas la roue. Ce type de programme existe comme par exemple
WINTASK qui fonctionne très bien

"Gloops" a écrit :


Bonjour tout le monde,

J'aimerais déclencher un enregistrement par une application extérieure.
Cette application réalise très bien l'enregistrement lorsqu'on le
déclenche à la main, enfin à coups de souris et clavier, mais j'ai une
version qui ne gère pas bien le déclenchement par minuterie (la
minuterie étant une application qui permet de saisir à quelle heure on
veut enregistrer). La version qui le fait bien plante sans arrêt, alors
on oublie.

J'ai repéré la position du bouton qui ouvre le menu de l'application,
alors avec WindowFromPoint j'obtiens son hWnd.
Ainsi, je peux cliquer dessus avec

SendMessage hwnd, WM_LBUTTONDOWN, 0, Null
For N = 1 To 10
DoEvents
Next
SendMessage hwnd, WM_LBUTTONUP, 0, Null

Et miracle, le menu apparaît.

L'ennui, c'est que la suite de mes instructions est ignorée (qu'il
s'agisse de clics ou de SendKeys) tant que le menu est ouvert, donc pour
cliquer sur une commande, c'est mal barré.

N'y aurait-il pas une astuce ?