01-08-2010
 
  Accueil arrow Tutoriels arrow Delphi arrow Window Message    
Accueil
Travaux
Mon CV
Tutoriels
Histoire
Contact


Linking
Management du risque




Window Message Convertir en PDF Version imprimable

Comme nous avons dit dans l'exemple de "Piloter Excel par OLE", nous pouvons aussi manipuler des applications en leurs envoyant des messages à condition qu’on connait au préalable leurs codifications. Pour cet exemple, nous allons choisir "Winamp" un lecteur mp3 de référence qui répond particulièrement aux messages WM_USER pour envoyer un message et obtenir un résultat, WM_COMMAND pour envoyer des commandes et WM_COPYDATA pour envoyer des données. Dans notre cas nous allons utiliser les deux premières.

La première étape est de récupérer le Handel (identificateur) de la fenêtre "Winamp" pour pouvoir lui transmettre des messages. 

var hwndWinamp : THandle;
hwndWinamp := FindWindow('Winamp v1.x', nil);
 

Puis, nous envoyons le message en appelant à la fonction

SendMessage(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)

avec : hWnd le handle de la fenêtre destination, Msg  le message à envoyer, wParam le premier paramètre et lParam le deuxième paramètre

Par exemple :
SendMessage (WinampHandel, WM_USER, 0, 125) avec 125 est le paramètre pour récupérer la position en cours de la "playlist".
SendMessage (WinampHandel, WM_COMMAND, 40047, 0) avec 40047 est le paramètre pour désigner la commande stop.

Vous pouvez trouvez l’ensemble des paramètres de Winamp dans cette liste.

Entre nous, l’application n’a pas de sens, certes elle nous permet de comprendre l’envoie des messages, mais il serait intéressant d'utiliser ce concept pour contrôler "Winamp" à partir d’une autre machine voir l'exemple "Winamp Remote".

Exemple à télécharger : WinampCommander.zip

 

 


Java Technology
2009 Annual Developer Quiz

Test your knowledge of Java developments in 2009.

Java Technology Headlines
 

© 2010 Le site Web de Mâamoun BERNICHI
Joomla! is Free Software released under the GNU/GPL License.