[R] L'explorateur Windows : récupérer nom d'un fichier

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
keltharak
Niveau 3
Niveau 3
Messages : 40
Enregistré le : lun. 12 janv. 2009 16:35
Status : Hors ligne

[R] L'explorateur Windows : récupérer nom d'un fichier

#1

Message par keltharak »

Bonjour,

Est-il possible de manipuler l'explorateur Windows avec des api ou autres pour récupérer le nom (ou encore mieux le path complet) d'un fichier selectionné dans une fenetre de l'explorateur de windows ?

Je pensais checher du coté des fonctions ControlGetFocus et compagnie mais je ne trouve pas de moyen pour récupérer l'handle de la fenetre qui a le focus... et même si j'y arrive je suis même pas sur de pouvoir faire quelque chose derière avec cet handle !

Merci.

EDIT : Apparement, ControlListView serait une fonction interessante pour moi par contre impossible de la faire marcher chez moi... je creuse ça.

EDIT 2 : J'ai finalement trouvé tout seul :)

Code : Tout sélectionner

Opt("WinDetectHiddenText", 1)
$WinActive = WinGetHandle("[active]")
If not StringInStr(WinGetClassList($WinActive), "SysListView32") Then Exit
$ControlActive = ControlListView(WinGetTitle($WinActive), "", "SysListView321", "GetSelected")
$nomFichier = ControlListView(WinGetTitle($WinActive), "", "SysListView321", "GetText", $ControlActive)
MsgBox(0, "Notre fichier selectionné", $nomFichier)
Si l'on veut connaitre le chemin d'accès au fichier il faut lire le texte de la fenetre avec

Code : Tout sélectionner

$texte = WinGetText($WinActive)
L'option "WinDetectHiddenText" à 1 permet de voir le chemin d'accès même si la barre d'adresse est masqué dans l'explorateur windows.

Il faut ensuite parser le texte récupérer pour extraire le chemin (présent 2 fois d'ailleurs), voir la fonction "WinGetText" dans l'aide.

Je me sert de tout ça pour modifier le nom d'un fichier depuis l'explorateur à la pression d'une touche du clavier.

Désolé du post au final mais ça aidera peut-être quelqu'un d'autre ;)
Répondre