AMS010
Messages postés14Date d'inscriptionjeudi 28 février 2008StatutMembreDernière intervention 6 juillet 2008
-
4 juil. 2008 à 15:51
DavySA
Messages postés1Date d'inscriptionjeudi 28 août 2008StatutMembreDernière intervention 2 septembre 2008
-
2 sept. 2008 à 11:20
Bonjour,
Je programme depuis quelques temps avec l'API windows, et j'ai commencé à lire le tutoriel de gRRrosminet sur le Contrôle du clavier et de la souris sous Windows; mais seul problème, je n'arrive pas à recupérer le handle du lecteur windows media.
Celà m'affiche 0x0...
Je me demande alors si le problème viens du class name, qui est incorrecte.
Je me demandais aussi comment connaitre le class name d'un fenetre.
Merci d'avance pour vos réponses.
Voilà le code:
#include <windows.h>
#include <stdio.h>
int main(int argc, char * argv[])
{
HWND hMediaplayer = FindWindow("Media Player 2",NULL);
printf("le handle de la fenêtre de media player 2 est : 0x%X",hMediaplayer);
return 0;
}
BastienL21
Messages postés172Date d'inscriptiondimanche 10 décembre 2000StatutMembreDernière intervention12 février 20092 4 juil. 2008 à 18:48
Slt,
Après avoir vérifié dans mes codes, il me semble que ce n'est pas :
HWND hMediaplayer = FindWindow("Media Player 2",NULL);
Mais :
HWND hMediaplayer = FindWindow("Media Player 2");
Après cette "inversion", si le nom de la fenêtre est bien ''Media Player 2'', tout devrait aller (J'ai aussi remarquer que quand il y des accents dans le titre, ca ne fonctionne pas.
BastienL21
Messages postés172Date d'inscriptiondimanche 10 décembre 2000StatutMembreDernière intervention12 février 20092 4 juil. 2008 à 19:00
Dans ce cas je ne vois pas...DSL...(ou peut-être, je ne sais pas, es-tu sûr que' %X' est une syntaxe correct? je ne sais pas, je n'avais jamais vu cette syntaxe...)
AMS010
Messages postés14Date d'inscriptionjeudi 28 février 2008StatutMembreDernière intervention 6 juillet 20081 4 juil. 2008 à 19:06
Oui, la sysntaxe est juste puisque je me suis sérvi de celle-ci pour récupérer le handle de la fenêtre au premier plan avec le code suivant:
#include <windows.h>
#include <stdio.h>
int main(int argc, char * argv[])
{
HWND hFore = GetForegroundWindow();
printf("le handle de la fenêtre au premier plan est : 0x%X",hFore);
return 0;
}
En procedant par élémination, je parviens à la conclusion suivante:
Le problème viens sois de l'OS, de l'IDE,ou des parametre de la fonction...
Vous n’avez pas trouvé la réponse que vous recherchez ?
SAKingdom
Messages postés3212Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention16 février 200915 4 juil. 2008 à 19:30
"If the function fails, the return value is NULL. To get extended error information, call GetLastError."
Si FindWindow retourne NULL, c'est qu'il n'a pas trouvé de fenêtre dont le nom de classe est "Media Player 2".
Un moyen de vérifier le nom de classe d'une fenêtre est d'utiliser GetClassName. Essais:
#include <windows.h>
#include <stdio.h>
int main(int argc, char * argv[])
{
HWND hFore;
char buf[300];
Sleep(5000);
hFore = GetForegroundWindow();
GetClassName(hFore, buf, sizeof(buf));
printf("%s\n", buf);
return 0;
}
Ou quelque chose dans le genre. Je ne peux pas tester pour le moment.
Le Sleep, c'est pour te laisser le temps de mettre la fenêtre désirée en premier plan, car, je ne sais pas si en démarrant ton programme, GetForegroundWindow ne se trouvera pas à récupérer un HANDLE vers ton propre programme.