[..] Détection des ascenseurs dans une fenêtre

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
Ebola
Niveau 3
Niveau 3
Messages : 32
Enregistré le : lun. 19 nov. 2012 18:09
Localisation : Metz
Status : Hors ligne

[..] Détection des ascenseurs dans une fenêtre

#1

Message par Ebola »

Bonjour

La question peut paraitre bête, mais aucune fonction n'aborde le sujet clairement

Je souhaite bien détecter la présence d'ascenseurs (verticla ou horizontal), mais dans une fenêtre lambda, pas dans une GUI créée en AutoIT

J'ai parcouru ddivers forum ou les scrollbars sont abordées pour être manipulées après création, mais moi je ne veux rien créer, juste savoir s'il y'en a :)

Merci pour toute aide
Avatar du membre
TopXm
Niveau 6
Niveau 6
Messages : 260
Enregistré le : mer. 25 mai 2011 16:37
Localisation : Usa
Status : Hors ligne

Re: [..] Détection des ascenseurs dans une fenêtre

#2

Message par TopXm »

Hello :)

En fait, ça n'est pas aussi simple car dans la plupart des cas, la Scrollbar que tu vois fait partie d'un autre contrôle,

du coup quand tu listes le contenu des divers contrôles de ta fenêtre, tu n'auras pas la ScrollBar. Regarde par exemple,

dans la fenêtre d'aide de Scite, tu vois deux ScrollBars : http://pix.toile-libre.org/upload/origi ... 458079.png

et pourtant, la 1ere ScrollBar fait partie de la Treeview et la seconde de la classe Internet Explorer_Server.

Perso, je me suis fait une fonction ( "_GuiCtrlGetGroupAndInfos" ) mais je présume qu'elle ne te conviendra pas.

Néanmoins tu peux toujours regarder par ici : http://www.autoitscript.fr/forum/viewto ... 480#p80480

La fonction se nomme "_GuiCtrlGetGroupAndInfos". Si tu as besoin de plus d'informations, n'hésite pas :)

++ :)
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Détection des ascenseurs dans une fenêtre

#3

Message par mikell »

Une fonction de listage des controles de la fenêtre ferait effectivement du bien, dans ce cas ce genre de truc pourrait marcher

Code : Tout sélectionner

#include <WinAPI.au3>
#include <Constants.au3>
#include <WindowsConstants.au3>
Opt("WinTitleMatchMode", -2)
;; $hWnd = WinGetHandle("test")
$hWnd = ControlGetHandle("test", "", "[CLASS:Edit; INSTANCE:1]")
$style = _WinAPI_GetWindowLong($hWnd, $GWL_STYLE) 
If BitAND($style, $WS_VSCROLL) = $WS_VSCROLL Then msgbox(0,"", "ok" )
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
Ebola
Niveau 3
Niveau 3
Messages : 32
Enregistré le : lun. 19 nov. 2012 18:09
Localisation : Metz
Status : Hors ligne

Re: [..] Détection des ascenseurs dans une fenêtre

#4

Message par Ebola »

Il est impossible de piocher l'existence ou non de $WS_VSCROLL, j'ai essayé, je vois bien les autres style, mais rien sur les barres :(

J'ai bien tenté ton UDF TopXm, mais l'include Ex est introuvable chez moi ?!
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Détection des ascenseurs dans une fenêtre

#5

Message par mikell »

C'est l'include WinAPIEx.au3
Sinon le problème est quasiment insoluble
Ce code
► Afficher le texte
va marcher quelquefois en arrivant à détecter vscroll dans les controles internes de la fenêtre, mais sur beaucoup de fenêtres ça ne marchera pas (IE, Mozilla etc)
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Répondre