[R] Lister tous les dossiers ouverts

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
franco
Niveau 7
Niveau 7
Messages : 343
Enregistré le : lun. 03 oct. 2011 22:37
Localisation : Liévin
Status : Hors ligne

[R] Lister tous les dossiers ouverts

#1

Message par franco »

Bonjour.

Je cherche ceci : lister tous les dossiers actifs / ouverts, afin de les relancer quand je tuerais le processus Explorer.exe, pour continuer un script déjà bien avancé.

Pour info : le script de départ me permet de désactiver ou de réactiver Cortana (la recherche WEB).
- Si je désactive Cortana, la recherche ne se fera que sur le PC.
- Si je réactive Cortana, la recherche se fera aussi bien sur le web que sur le PC.

Et bien entendu, pour que les modifications soient prisent en compte, il faut :
  1. Soit redémarrer ou se déconnecter de la sessions en cours.
  2. Soit Fermer explorer.exe et le relancer.
Je préfère bien sur la solution n°2.



Le script fonctionne...
Mais quand on tue le processus explorer.exe et qu'on le relance, les dossiers auparavant ouverts se ferment mais se relancent pas.


Je cherche donc un moyen de lister, avant le redémarrage d'explorer.exe, tous les dossiers ouverts.
Afin que je puisse les ré-ouvrir par la suite.



Sauf que je dois m'y prendre comme un manche : mes recherches n'aboutissent pas, aussi bien en français qu'en anglais....


Seul ce topic m'avait l'air intéressant : https://www.autoitscript.com/forum/topi ... -explorer/

j'ai testé ce script donc :
► Afficher le texte
Sauf que ce script ne détecte que le dossier actuel et ses sous-dossiers.

Alors que je cherche à détecter tous les dossiers actifs, sans les sous-dossiers.

Ensuite, je me suis dis : et si je listais toutes les fenêtres (WinList), avec la condition suivante : si la fenêtre détectée est un dossier, copier le chemin.

Sauf que c'est bien beau de l'écrire, mais pour le faire, c'est une autre paire de manche. Je pensais faire avec WinGetState, mais je me suis ravisé quand j'ai lu l'aide. xD


Pouvez-vous m'aider svp ?


Je vous met les scripts qui me servent pour Cortana :
► Afficher le texteActiver Cortana
► Afficher le texteDésactiver Cortana
► Afficher le texteActiver/Désactiver Cortana (GUI)
► Afficher le texteActiver/désactiver Cortana (Systray)
► Afficher le texteActiver/Désactiver Cortana directement (Pas de Gui)

Merci à tous pour vos pistes !

A la prochaine ! :)
Modifié en dernier par franco le jeu. 29 sept. 2016 12:21, modifié 1 fois.
L'entraide, c'est mon dada ;)
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2109
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] Lister tous les dossiers ouverts  

#2

Message par TommyDDR »

Bonjour,

essayez ceci :
#include <Array.au3>

Global $paths = getAllExplorerPath()
ProcessClose("explorer.exe")
Sleep(200)
If(Not(ProcessExists("explorer.exe"))) Then
   Run("explorer.exe")
EndIf
For $i = 0 To UBound($paths, 1) -1
   ConsoleWrite($paths[$i] & @CRLF)
   ShellExecute($paths[$i])
Next

Func getAllExplorerPath()
   Local $addressText = "Address: "
   Local $winList = WinList("[CLASS:CabinetWClass]")
   Local $retour[$winList[0][0]]
   For $i = 1 To $winList[0][0]
      $retour[$i-1] = ControlGetText($winList[$i][1], "", "[CLASS:ToolbarWindow32; INSTANCE:2]")
      If(StringLeft($retour[$i-1], StringLen($addressText)) = $addressText) Then
         $retour[$i-1] = StringTrimLeft($retour[$i-1], StringLen($addressText))
      EndIf
   Next
   Return $retour
EndFunc
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Avatar du membre
franco
Niveau 7
Niveau 7
Messages : 343
Enregistré le : lun. 03 oct. 2011 22:37
Localisation : Liévin
Status : Hors ligne

Re: [..] Lister tous les dossiers ouverts

#3

Message par franco »

Salut et merci à TommyDDR.

Le script fonctionne.

j'ai du le modifier car address: est surement pour les pc "anglo-saxons" ^^ j'ai mis Adresse :

Et l'instance 2, sur mon pc, c'est 3.


Mais en tout cas, cela m'a donné une sacrée piste : merci encore.


Je peux donc adapter mes scripts, super ! ;)

EDIT : mes scripts ont tous été adaptés, je passe en résolu.

Merci ;)


++
L'entraide, c'est mon dada ;)
Répondre