Page 1 sur 1

Connaître la taille réelle d'une fenêtre

Posté : ven. 06 sept. 2019 11:02
par Gavriel
Comment connaître la taille réelle d'une fenêtre même ce qu'il y a après l'horizontal où le vertical j'ai essayé avec
$aClientSize = WinGetClientSize($hWnd)
mais ça n'a pas marché
ça m'a donné seulement la taille qui est visible à l'écran et pas ce qui se trouve après le défilement de la verticale ou l'horizontal


Merci de votre réponse mais cela ne répond pas à ma question ce que vous m'avez donné donne la position de la fenêtre Par rapport a l ecran moi je cherche à savoir l'intérieur de la fenêtre combien il y a de taille par exemple j'ai un très long texte sur une seul ligne dans un fichier texte donc forcément j'aurais besoin de déplacer la barre de défilement horizontal donc je voudrais savoir quelle est la taille de la fenêtre d'un bout à l'autre du début du texte jusqu'à la fin du texte qui est sur une ligne merci

Re: Connaître la taille réelle d'une fenêtre

Posté : ven. 06 sept. 2019 11:28
par jchd
Voir WinGetPos()

Re: Connaître la taille réelle d'une fenêtre

Posté : ven. 06 sept. 2019 12:02
par TommyDDR
WinGetPos() sert justement à ça oui, contrairement à WinGetClientSize qui vous donne la partie "exploitable" où vous pouvez afficher des controles, la où votre 0, 0 commence entre autre.

Re: Connaître la taille réelle d'une fenêtre

Posté : dim. 08 sept. 2019 13:25
par Gavriel
Merci de votre réponse mais cela ne répond pas à ma question ce que vous m'avez donné donne la position de la fenêtre Par rapport a l ecran moi je cherche à savoir l'intérieur de la fenêtre combien il y a de taille par exemple j'ai un très long texte sur une seul ligne dans un fichier texte donc forcément j'aurais besoin de déplacer la barre de défilement horizontal donc je voudrais savoir quelle est la taille de la fenêtre d'un bout à l'autre du début du texte jusqu'à la fin du texte qui est sur une ligne merci

Re: Connaître la taille réelle d'une fenêtre

Posté : dim. 08 sept. 2019 14:26
par TommyDDR
Lisez l'aide de WinGetPos(), vous verrez que ce que vous cherchez s'y trouve ;)

Re: Connaître la taille réelle d'une fenêtre

Posté : mar. 10 sept. 2019 14:00
par Gavriel
Bonjour voici mon code dis-moi s'il te plaît ce qui est faut j'ai essayé même si jagrandi le texte le resulra sera toujours le même grandeur marquer dans le msgbox ne change pas malgré que la barre de défilement s'est agrandi merci




#include <MsgBoxConstants.au3>
#include <WinAPI.au3>

#include <GUIScrollBars.au3>
#include <ScrollBarConstants.au3>
#include <SendMessage.au3>
#include <WinAPI.au3>
#include <StructureConstants.au3>
#include <WindowsConstants.au3>

Example()

Func Example()
    ; Run Notepad
   Run("Notepad.exe")
$WinHndl = WinWait("[CLASS:Notepad]")
If @error Then Exit

;Get Edit handle and put some text.
$EditHndl = ControlGetHandle($WinHndl, "", "Edit1")
ControlSetText($WinHndl, "", $EditHndl, "jguguguguhhyfiyfyifiyfyfyofoyfoyfoyfyofoygyfoyfoyfoyfoyfohfohgyfyfugugugugut7t7tfohfohfoyfoyfoyfoyfoyflhfohflhfoyhfhlhgyffoyfoyfoyfoyfoyggiyfhfhfugjgkhihkgihihi")

Sleep(000)

WinWaitActive('[CLASS:Notepad]')
 $aPos = WinGetPos("[ACTIVE]")
   MsgBox($MB_SYSTEMMODAL, "", "X-Pos: " & $aPos[0] & @CRLF & _
            "Y-Pos: " & $aPos[1] & @CRLF & _
            "Width: " & $aPos[2] & @CRLF & _
            "Height: " & $aPos[3])


Sleep(00)
     ; Close the Notepad window using the handle returned by WinWait.
    WinClose($WinHndl)
EndFunc   ;==>Example

Re: Connaître la taille réelle d'une fenêtre

Posté : mer. 11 sept. 2019 11:11
par TommyDDR
Ok, je viens de comprendre "ce qui se trouve après la barre de défilement", désolé pour ce mal entendu.
Pour le coup, je ne sait pas si c'est possible.
Si vous pouvez récupérer le texte du control, sa police, essayez de vous pencher du cote de _WinAPI_GetTextExtentPoint32() (regardez l'aide pour vous aider) cela vous donnera la taille du texte en pixel, il faudra ajouter vous même les potentielles bordures ou autre.

Re: Connaître la taille réelle d'une fenêtre

Posté : mer. 11 sept. 2019 12:50
par Gavriel
Merci de ta réponse mais que faire dans le cas où je n'ai pas un texte mais une image car en vérité ce que je veux faire c'est de pouvoir capturer une image entière même ce qui se trouve après le défilement je pensais que je pouvais connaître la taille de la fenêtre où se trouve l'image
de capturer la première partie et de faire un ‏send scroll vers la droite (que j'arrive à faire) et de capturer la deuxième partie mais seulement la partie qui me manque (car quand je vais aller vers la droite il y aura une partie que j'ai déjà capturer) puis je recole les images ensemble (que je fais déjà avec un autre programme) si tu as une idée merci de ton aide

Re: Connaître la taille réelle d'une fenêtre

Posté : mer. 11 sept. 2019 19:46
par TommyDDR
Le problème c'est que la taille de la fenêtre, vous l'avez déjà, ce n'est pas parce qu’il y a une barre de défilement que la fenêtre est plus grande réellement, ce n'est qu'un effet visuel.

Re: Connaître la taille réelle d'une fenêtre

Posté : jeu. 12 sept. 2019 07:27
par jchd
En fait il ne s'agit pas du tout de la taille de la fenêtre mais de la "taille" de ce qu'on représente dedans et c'est une toute autre histoire.
E là, tout dépend du programme considéré. Par exemple, tel afficheur d'image va réduire une image à la taille client de sa fenêtre, tel autre va mettre en place des barres de défilement pour déplacer la partie visible dans l'image entière.
Tel éditeur de texte va respecter une longueur de ligne donnée et effectuer des retours ligne de continuation, d'autres proposent des barres de défilement.

Re: Connaître la taille réelle d'une fenêtre

Posté : jeu. 12 sept. 2019 13:13
par Gavriel
#10 par jchd » jeu. 12 sept. 2019 07:27
En fait il ne s'agit pas du tout de la taille de la fenêtre mais de la "taille" de ce qu'on représente dedans et c'est une toute autre histoire.
E là, tout dépend du programme considéré. Par exemple, tel afficheur d'image va réduire une image à la taille client de sa fenêtre, tel autre va mettre en place des barres de défilement pour déplacer la partie visible dans l'image entière.
Tel éditeur de texte va respecter une longueur de ligne donnée et effectuer des retours ligne de continuation, d'autres proposent des barres de défilement.
Tout à fait il y aurait-il alors une solution
merci