[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