Commander un menu d'un tiers programme via les API windows

Résolu
vallois Messages postés 4 Date d'inscription dimanche 17 août 2008 Statut Membre Dernière intervention 29 mars 2023 - 2 avril 2011 à 11:30
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 4 avril 2011 à 07:34
En VB6 comment commander un bouton du menu d'un tiers programme via les API windows? Par exemple comment activer le menu Edition/Tout sélectionner, puis Edition/Copier, du Bloc-notes de Microsoft?
Je connais le Handle-hWdn du Bloc-notes à partir du process.ID, et les GetMenu(hwnd), GetSubMenu(hMnu, ByVal x&) mais comment activer par programmation les boutons???

3 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
2 avril 2011 à 12:11
procures toi Spy++ (ou equivalent)
te faut utiliser WM_COMMAND

cf.

www.vbfrance.com/codes/COURS-PILOTAGE-APPLICATIONS_51165.aspx
Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
3
vallois Messages postés 4 Date d'inscription dimanche 17 août 2008 Statut Membre Dernière intervention 29 mars 2023
3 avril 2011 à 13:07
Ce cours de pilotage est à l'origine de ma question:
'Activation du mode scientifique
SendMessage hMainWnd, WM_COMMAND, 304, ByVal 0&
'passage en mode hexa
SendMessage hMainWnd, WM_COMMAND, 306, ByVal 0&.
Mais justement il ne précise pas le sens dss paramètres.
Et MSDN WM_COMMAND n'est pas clair:
high-order word of wParam = 0 ? (<> de key accelerator?)
et quel "identifier of the menu" spécifie the low-order of wParam ?

N'y a-t-il pas quelquechose de plus simple et général avec BN_CLICKED ?
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
4 avril 2011 à 07:34
toi, tu n'as pas lu le .doc...

chaque menu a un identifiant... (chaque controle aussi)

304 pour le mode scientifique de la calculatrice, 306 pour le mode hexa...

on se contente de dire a la fenetre en question que tel ou tel controle a subit un click...

MSDN dit:

Use of the wParam and lParam parameters are summarized here.

Message Source wParam (high word)......wParam (low word)...............lParam
Menu............0.......................Menu identifier (IDM_*).........0
[...]

nous passons bien cet identifiant...

le tout est de les identifier, et pour ca, tu as le .doc

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
0
Rejoignez-nous