|
[WDx] Comment récupérer le titre d'une fenêtre en second plan |
|
|
Bonjour,
A partir d'une application Windev ( en 1er plan ) je désire récupérer le titre d'une fenêtre NON-WINDEV ( ou windev ) qui se trouve au second plan.
Pour celà j'utilise les fonctions suivantes : ResActive est un entier ResTitreFen est une chaîne ResActive = SysFenActive () ResTitreFen = SysFenTitre(ResActive) Info(ResTitreFen)
Je ne parviens qu'à récupérer le titre de la fenêtre de l'application Windev et pas celui de l'application cachée au second plan.
Ou est mon erreur ? Que dois-je faire pour récupérer le titre d'une fenêtre d'une autre application Non windev qui est active mais n'a pas le focus ?
Merci d'avance
Cordialement
Contribution le : 30/04/2005 09:37
|
|
|
Re: [WDx] Comment récupérer le titre d'une fenêtre en second plan |
|
DSI WDF
Inscrit: 15/03/2005 14:22
Post(s): 238
|
Sans le handle, ce n'est pas possible (de ce que je connais).
L'autre fenetre est elle lancé à partir de WD ou non?
Dans quel but est ce?
Contribution le : 30/04/2005 15:20
|
|
|
Re: [WDx] Comment récupérer le titre d'une fenêtre en second plan |
|
|
Bonjour,
Selon l'aide en ligne de Windev, SysFenActive permet de récupérer le handle d'une fenêtre non-windev. Donc j'ai bien un handle récupéré mais c'est celui de mon application qui est alors en 1er plan et non celui de la fenêre de second plan.
Mon but est de faire la capture de l'image d'une fenêtre appartenant à une autre application puis de retourner dans mon application windev, y récupérer le titre de la fenêtre que je viens de capturer pour qu'il soit le nom de l'image capturée que je désire alors sauver dans un fichier image.
Cordialement
Contribution le : 30/04/2005 16:11
|
|
|
Re: [WDx] Comment récupérer le titre d'une fenêtre en second plan |
|
|
Bonjour,
J'ai pu récupérer sur le site de Cyrille Beaussier le code suivant que j'ai adapté et qui me permet de récupérer la liste des fenêtres présentes en arrière de mon application. Dans ce code la dernière fenêtre ayant eu le focus ( donc celle que je viens de capturer est toujours la 1ère de la liste à condition que j'élimine 2 noms de fenêtres, "M" et "DEFAULT IME" Pensez-vous que cette solution est suffisante ou dois-je prendre une autre précaution ?
Cordialement
Lg, Ok sont des entiers hWnd est un entier lpString est une chaîne fixe sur 255 WNomLu est une chaîne hWnd = AppelDLL32("User32", "GetWindow", Handle(), 2) ListeSupprimeTout(Liste1) WFenetreCapturee = "" TANTQUE hWnd <> Handle() Multitache() Lg = AppelDLL32("User32", "GetWindowTextLengthA", hWnd) Ok = AppelDLL32("User32", "GetWindowTextA", hWnd, &lpString, Lg + 1) SI Ok ALORS WNomLu = Gauche(lpString,Lg) SI PAS Majuscule(WNomLu) = "M" ET PAS Majuscule(WNomLu) = "DEFAULT IME" ALORS ListeAjoute(Liste1,WNomLu) ListeSelectPlus(Liste1,1) WFenetreCapturee = Liste1[Liste1] SORTIR FIN FIN hWnd = AppelDLL32("User32", "GetWindow", hWnd, 2) SI hWnd = 0 ALORS SORTIR FIN FIN Info(WFenetreCapturee)
Contribution le : 01/05/2005 19:19
|
|
Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.