Bonjour !
Je crois que le titre est assez parlant...Je voudrais savoir comment trouver le Handle du boutton démarrer avec le code :
HWND hwnd = FindWindow(...)
Voila !
Et si quelqu'un connait une liste des Handles ca m'interesse.
Salut !
Bonjour !
Je crois que le titre est assez parlant...Je voudrais savoir comment trouver le Handle du boutton démarrer avec le code :
HWND hwnd = FindWindow(...)
Voila !
Et si quelqu'un connait une liste des Handles ca m'interesse.
Salut !
Bonjour,
le problème avec les handles c'est qu'il changent à chaque fois...
Pour trouver le bouton démarrer, il faut à mon avis trouver un bouton sur la shell window tray.
Par exemple, je possède un winows XP U.S, ce qui fait que mon bouton s'appelle "Start" et non "démarrer", il faut donc pensez à l'internationalisation... trouver le bouton "démarrer" ne marchera que sur le XP francophones.
Je propose ce code en C++ :
resultat :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46 #include <iostream> #include <vector> #include <windows.h> #define WIN32_LEAN_AND_MEAN using namespace std; int main(void) { HWND hTray = FindWindow(L"Shell_TrayWnd",NULL); if (hTray != NULL) cout << "Trouve Shell Tray Window ! HWND : " << hex << hTray; else { cout << "Impossible de trouver la Shell tray Window"; return 0; } HWND hStartButton = FindWindowEx (hTray, NULL, L"Button", NULL); if (hStartButton != NULL) cout << endl << "Trouve un bouton ! HWND : " << hex << hStartButton; else { cout << endl << "impossible de trouver un bouton sur la Shell tray !"; return 0; } vector<WCHAR> buff; int len = GetWindowTextLength (hStartButton); buff.resize(len + 1); GetWindowText (hStartButton, &buff[0], static_cast<int>(buff.size())); wstring str = &buff[0]; wcout << endl << L"Le texte du bouton est : " << str.c_str() ; return 0; }
Voilà, en espérant que ca aideTrouve Shell Tray Window ! HWND : 0003003A
Trouve un bouton ! HWND : 0003003C
Le texte du bouton est : Start
Merci beaucoup, mais tu m'inquiete un peu en disant que les Handles changent à chaque fois !
Voici une ligne d'un de mes codes :
HWND hwnd = FindWindow("Shell_traywnd", NULL);
et une autre :
HWND hwnd = FindWindow("Progman", "Program Manager");
Mon code marchera-t-il sous un n'importe quel XP, français ou anglais ?
En fait je voulais dire qu'ils changent entre deux démarrages de windows, par nature les handles sont inconsitants. Il est possible que les handles de fenêtres tels que ceux de la Shell-Tray ou autre soient les mêmes entre deux démarrages, mais ça serait une erreur que de les "coder en dur" dans le programme.tu m'inquiete un peu en disant que les Handles changent à chaque fois !
Tant que le texte de la fenêtre ne change pas entre les différentes langues, il n'y a aucun problème ! (a contrario du bouton "démarrer" par ex.)Mon code marchera-t-il sous un n'importe quel XP, français ou anglais ?
Pourquoi as-tu besoin de ce handle ?
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager