Je suis actuellement confronté à un problème. Je dois décocher toutes les cases d'un SysTreeView32, présenté ici :
Cependant, il m'est impossible de cocher une case avec ControlTreeView et la fonction _GUICtrlTreeView_SetChecked ou avec la fonction ControlTreeView.
De plus, AutoIt m'indique que les Items ne sont pas des Checbox, car ControlTreeView(...,"IsChecked", ...) renvoie -1.
Pourriez-vous m'aider à résoudre ce problème ?
Désolé j'avais fait ça hier soir juste avant de partir rapidement pour pas rater mon bus x)
Voici donc le rapport d'AutoIt Window Info :
>>>> Window <<<<
Title: Table des matières
Class: XTPDockingPaneMiniWnd
Position: 8, 79
Size: 348, 865
Style: 0x94481100
ExStyle: 0x00000180
Handle: 0x000F1D10
>>>> Visible Text <<<<
Table des matières
Contenu
Tree1
xtpBarTop
ContentsViewToolbar
xtpBarBottom
xtpBarLeft
xtpBarRight
Donc en fait ce qui se passe c'est qu'AutoIt arrive bien à lister les éléments du TreeView (avec ControlTreeView et des path de type #0|#1| ... AutoIt retrouve bien les éléments), mais il ne les voie pas comme des CheckBox. Du coup, je ne peux pas utiliser de ControlTreeView(..., "Check").
Et j'avoue ne pas du tout comprendre pourquoi :/
J'ai testé le code suivant (je ne mets volontairement pas tout mon script qui est trop long) :
ControlCommand("Table des matières", "", "SysTreeView321", "IsChecked", "Service de l'Observation et des Statistiques") et il me renvoie -1 (= pas une Checkbox)
Et logiquement, ControlCommand("Table des matières", "", "SysTreeView321", "Uncheck", "Service de l'Observation et des Statistiques") ne décoche pas la case, mais bizarrement, AutoIt ne met pas d'erreur @error n'est pas à 1).
Idem avec les _GUICtrlTreeView_* qui ne font rien du tout.
#include <GuiTreeView.au3>
Global $hWnd_TV = ControlGetHandle("Table des matières", "", "[CLASS:SysTreeView32]")
_GUICtrlTreeView_SetChecked($hWnd_TV,$LigneOuIlYALaCaseACocher, True);ou fase pour décocher
#include <GuiTreeView.au3>
Global $hWnd_TV = ControlGetHandle("Table des matières", "", "[CLASS:SysTreeView32]")
_GUICtrlTreeView_SetChecked($hWnd_TV,$LigneOuIlYALaCaseACocher, True);ou fase pour décocher
J'ai essayé mais malheureusement ça n'a aucun effet. Je ne comprends absolument pas pourquoi.
Est-ce que l'application en question (ArcMap si je me souviens bien) est une application 64 bits ? Si c'est le cas, essai de lancer ton script en 64 bits (ou de le compiler en 64 bits), ça pourrait résoudre ton problème
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !