|
Débuté par Monsieur Serge, 02 fév. 2021 23:37 - 6 réponses |
| |
| | | |
|
| |
Membre enregistré 213 messages Popularité : +12 (12 votes) |
|
Posté le 02 février 2021 - 23:37 |
Bonjour,
NombreFenêtre() permet d'obtenir le nombre de fenêtres "Windev" couramment ouvertes. https://doc.pcsoft.fr/fr-FR/?3064005
Ce nombre est indépendant de la fenêtre source, qui pourrait être ouverte en plus d'une instance.
Est-il possible de lister ces fenêtres "Windev"? Je ne trouve rien à ce sujet.
Merci.
Serge
-- ----- Parfois, la logique est implacable... |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 213 messages Popularité : +12 (12 votes) |
|
Posté le 02 février 2021 - 23:41 |
À tout hasard.
Sauf avis contraire, EnumèreElément(enumFenêtre) ne répond pas à mes besoins.
Un même fenêtre source ouverte en plus d'une instance ne sera listée qu'une seule fois.
Serge
-- ----- Parfois, la logique est implacable... |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 213 messages Popularité : +12 (12 votes) |
|
Posté le 04 février 2021 - 04:31 |
Si jamais un autre développeur a la même question...
Constantes à déclarer: //--- Première fenêtre de la liste "selon Windows" GW_HWNDFIRST = 0 //--- Fenêtre suivante dans la liste GW_HWNDNEXT = 2
//--- ID Windows (Handle) de la fenêtre es4WHandle est un entier //--- Longueur du titre de la fenêtre esLongueur est un entier système //--- Titre de la fenêtre chiTitre est une chaîne
//--- Pour les besoins de la trace x est un entier
es4WHandle = AppelDLL32("User32", "GetWindow", Handle(), GW_HWNDFIRST)
TANTQUE es4WHandle <> 0
SI API("USER32", "IsWindowVisible", es4WHandle) <> 0 ALORS
API("USER32","FlashWindow", es4WHandle, 1)
esLongueur = API("USER32", "GetWindowTextLengthA", es4WHandle) + 1
chiTitre = Répète(" ", esLongueur)
API("USER32", "GetWindowTextA", es4WHandle, chiTitre, esLongueur)
chiTitre = Gauche(chiTitre, esLongueur - 1)
x ++ SI chiTitre <> "" ALORS Trace(x + "-" + chiTitre) FIN
es4WHandle = API("USER32", "GetWindow", es4WHandle, GW_HWNDNEXT) FIN
Bon dev.
Serge
-- ----- Parfois, la logique est implacable... |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 213 messages Popularité : +12 (12 votes) |
|
Posté le 04 février 2021 - 04:37 |
Une étape supplémentaire, celle qui répond réellement à mon besoin.
Si je connais le titre de la fenêtre, inutile de lister pour retrouver son "handle". Je peux lui donner le contrôle en deux petites lignes de code.
es4WHandle est un entier
es4WHandle=API("USER32", "FindWindowA", Null, "TitreDeLaFenêtre")
API("USER32", "SetForegroundWindow", es4WHandle)
Trois lignes de code si je considère la déclaration de la variable.
Bon dev.
Serge
-- ----- Parfois, la logique est implacable... |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 170 messages Popularité : +18 (18 votes) |
|
Posté le 04 février 2021 - 08:43 |
soit es4WHandle = API("USER32", "FindWindowA", Null, "TitreDeLaFenêtre")
API("USER32", "SetForegroundWindow", es4WHandle)
Et voila, deux lignes
-- Hth, Padbrain |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 213 messages Popularité : +12 (12 votes) |
|
Posté le 05 février 2021 - 03:18 |
Je ne la connaissais pas cette déclaration directe. +1 pour l'astuce.
Serge
-- ----- Parfois, la logique est implacable... |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 213 messages Popularité : +12 (12 votes) |
|
Posté le 05 février 2021 - 03:33 |
| |
| |
| | | |
|
| | | | |
| | |
|