Page 1 sur 1

Manipuler fenêtre Windows (explorateur)

Posté : ven. 12 oct. 2018 13:29
par apatsou
Bonjour,

J'essaie de manipuler les différents Menus et fenêtres d'une fenêtre Windows. Voir la pièce jointe pour mieux comprendre.
Est-il possible de descendre dans le menu "Organiser" pour, dans mon cas, décocher le volet des détails ou peut-être plus simple, réduire sa taille ?
De même, est-il possible de modifier la dimension de la fenêtre de gauche qui montre l'explorateur ?

Je n'ai encore su trouver pour y arriver.

Merci de votre aide.

Re: Manipuler fenêtre Windows (explorateur)

Posté : jeu. 18 oct. 2018 18:35
par caramen
Je sais plus si sur Win7 le #postmessage peut etre utilisé ou pas.

As tu essayer :
ControlClick
WinMove

Ou si tu montre un code je peux aider dessus...

Re: Manipuler fenêtre Windows (explorateur)

Posté : lun. 22 oct. 2018 12:27
par apatsou
Bonjour,

Je ne pense pas que Control clik puisse marcher car Au3Info ne fournit aucune information concernant les boutons Fichier, Accueil, Partage, Affichage qui se trouvent dans le menu et qui puisse les différencier (mise à part la position).

Re: Manipuler fenêtre Windows (explorateur)

Posté : lun. 22 oct. 2018 23:54
par Tlem
Bonsoir.
Par la base de registre, ce serait sans doute plus simple.

1. Snapshoot de la BDR avant modif.
2. Snapshoot de la BDR après modif.
3. On compare pour reproduire.

Cordialement

Re: Manipuler fenêtre Windows (explorateur)

Posté : mar. 23 oct. 2018 01:01
par walkson
Bonsoir,
J'ai essayé la proposition de Caramen sans succès.
Avec le code de Jguinch (https://www.autoitscript.fr/forum/viewt ... =6&t=10670), j'ai pu modifier, masquer mais sans pouvoir fermer le treeview. Après une rapide recherche, je me suis orienté vers le Send(), la méthode n'est pas très élégante.
Je vous mets le code brut pour net (à titre d'exemple), les 3 dernières lignes vous donnent la réponse à votre question
ShellExecute(@DesktopDir)
Sleep(1000)
$HDL = WinGetHandle ( "[ACTIVE]" ,"" )
MsgBox(0,"Handle",$HDL, 2, $HDL)
MsgBox(0,"control",ControlGetHandle($HDL,"","[CLASS:SysTreeView32; INSTANCE:1]"), 2, $HDL)
$array = ControlGetPos($HDL, "", "DirectUIHWND3")
MsgBox(0,"dimension",$array[2] & "   " & $array[3],2, $HDL)
$rep1 = ControlMove($HDL, "","DirectUIHWND3", $array[0]  , $array[1], $array[2] - 900 , $array[3]  )
ControlTreeView($HDL,"","SysTreeView321","Collapse", "#1")
MsgBox(0,"Rst", $rep1, 2, $HDL)

;~====================== Par Send() ===================================================================================
Send("^e{TAB}{enter}");focus box recherche, tab pour arriver sur Organiser, entrer pour ouvrir le combo
Sleep(1500);pause pour voir
Send("d{DOWN 3}{enter}") ;d pour Disposition, down 3 fois dans le sous menu, entrer pour sélectionner Volet de navigation

La solution de Tlem est certainement la plus sûr mais plus complexe. A titre perso, j'opterai pour sa solution

Re: Manipuler fenêtre Windows (explorateur)

Posté : mar. 23 oct. 2018 08:11
par caramen
Hello,
dans ce cas la tu peux utiliser l'udf IUIAutomation il te permettra de faire tout ce que tu veux avec les fenêtres W7/W8.1/W10 a partir du principe ou tu sais le manipuler.
Renseigne toi puis je t'aide si tu as besoin.