[VB.NET] FindWindow et SendMessage
Bonjour, j'aurais aimé savoir s'il était possible de prendre le controle ( simuler des clics sur boutons et menus ) d'une application avec un programme en vbnet.
En C++ : (j'avais demandé sur le forum)
Citation:
Envoyé par Médinoc
Pour simuler un clic dessus, tu dois obtenir le handle de la fenêtre principale, puis poster un message WM_COMMAND:
Code:
1 2 3 4 5 6
| PostMessage(
hWnd, //Handle de la fenêtre mère
WM_COMMAND, //message WM_COMMAND
MAKELONG(CtrlID, BN_CLICKED), //type de commande: clic sur bouton CtrlID
GetDlgItem(hWnd, CtrlID) //handle du bouton
); |
Citation:
Envoyé par Médinoc
Pour récupérer le handle de la fenêtre, utilise FindWindow() (tu as besoin du titre, visible au premier coup d'oeil, et de la classe de fenêtre, que spy++ te donne
Pour avoir ce Handle il y a la fonction FindWindow()
Que puis-je utiliser en VBNET ?
De même quand il s'agit d'un menu et non d'un bouton
Merci
Re: [VB.NET] Trouver un handle, simuler clic sur bouton
Citation:
Envoyé par 6su7
Bonjour, j'aurais aimé savoir s'il était possible de prendre le controle ( simuler des clics sur boutons et menus ) d'une application avec un programme en vbnet.
En C++ : (j'avais demandé sur le forum)
Citation:
Envoyé par Médinoc
Pour simuler un clic dessus, tu dois obtenir le handle de la fenêtre principale, puis poster un message WM_COMMAND:
Code:
1 2 3 4 5 6
| PostMessage(
hWnd, //Handle de la fenêtre mère
WM_COMMAND, //message WM_COMMAND
MAKELONG(CtrlID, BN_CLICKED), //type de commande: clic sur bouton CtrlID
GetDlgItem(hWnd, CtrlID) //handle du bouton
); |
Citation:
Envoyé par Médinoc
Pour récupérer le handle de la fenêtre, utilise FindWindow() (tu as besoin du titre, visible au premier coup d'oeil, et de la classe de fenêtre, que spy++ te donne
Pour avoir ce Handle il y a la fonction FindWindow()
Que puis-je utiliser en VBNET ?
De même quand il s'agit d'un menu et non d'un bouton
Merci
(Avec beaucoup de retard mais celà pourra peut-être encore servir : )
Pour simuler un clic sur un bouton d'une autre application, il vaut mieux utiliser le message BM_CLICK.
Citation:
Envoyé par MSDN
BM_CLICK Message
An application sends a BM_CLICK message to simulate the user clicking a button. This message causes the button to receive the WM_LBUTTONDOWN and WM_LBUTTONUP messages, and the button's parent window to receive a BN_CLICKED notification message.
Syntax
To send this message, call the SendMessage function as follows.
lResult = SendMessage( // returns LRESULT in lResult
(HWND) hWndControl, // handle to destination control
(UINT) BM_CLICK, // message ID
(WPARAM) wParam, // = 0; not used, must be zero
(LPARAM) lParam // = 0; not used, must be zero
);
Re: [VB.NET] Trouver un handle, simuler clic sur bouton
Citation:
Envoyé par NicolasJolet
Citation:
Envoyé par 6su7
Bonjour, j'aurais aimé savoir s'il était possible de prendre le controle ( simuler des clics sur boutons et menus ) d'une application avec un programme en vbnet.
En C++ : (j'avais demandé sur le forum)
Citation:
Envoyé par Médinoc
Pour simuler un clic dessus, tu dois obtenir le handle de la fenêtre principale, puis poster un message WM_COMMAND:
Code:
1 2 3 4 5 6
| PostMessage(
hWnd, //Handle de la fenêtre mère
WM_COMMAND, //message WM_COMMAND
MAKELONG(CtrlID, BN_CLICKED), //type de commande: clic sur bouton CtrlID
GetDlgItem(hWnd, CtrlID) //handle du bouton
); |
Citation:
Envoyé par Médinoc
Pour récupérer le handle de la fenêtre, utilise FindWindow() (tu as besoin du titre, visible au premier coup d'oeil, et de la classe de fenêtre, que spy++ te donne
Pour avoir ce Handle il y a la fonction FindWindow()
Que puis-je utiliser en VBNET ?
De même quand il s'agit d'un menu et non d'un bouton
Merci
(Avec beaucoup de retard mais celà pourra peut-être encore servir : )
Pour simuler un clic sur un bouton d'une autre application, il vaut mieux utiliser le message BM_CLICK.
Citation:
Envoyé par MSDN
BM_CLICK Message
An application sends a BM_CLICK message to simulate the user clicking a button. This message causes the button to receive the WM_LBUTTONDOWN and WM_LBUTTONUP messages, and the button's parent window to receive a BN_CLICKED notification message.
Syntax
To send this message, call the SendMessage function as follows.
lResult = SendMessage( // returns LRESULT in lResult
(HWND) hWndControl, // handle to destination control
(UINT) BM_CLICK, // message ID
(WPARAM) wParam, // = 0; not used, must be zero
(LPARAM) lParam // = 0; not used, must be zero
);
j'avais d'autre partie de mon projet à finir, je vais enfin me consacrer à celle ci