2008-10-24 9 views
3

Y a-t-il un moyen de savoir quel fichier est sélectionné dans Windows Explorer? J'ai regardé le tutoriel posté ici Idiots guide to ... mais les actions décrites sont:Extension du shell pour le fichier sélectionné

vol stationnaire

contexte

propriétés du menu

glisser

glisser-déposer

I Je me demande s'il existe une méthode qui est invoquée lorsqu'un fichier est sélectionné. Par exemple pour créer une vue en miniature du fichier.

Merci.

Répondre

0

Voici comment je le fais dans AutoHotkey:

GetWindowsExplorerSelectedFile(_hWnd) 
{ 
    local selectedFiles, file 

    ; I can send ^C and parse Clipboard, but this way don't mess with clipboard at all, seems nicer. 
    ; Warning: with this, you get only what is displayed in Explorer! 
    ; If you kept the default Windows setting of not displaying file extensions (bad idea...), 
    ; you will get partial file names... 
    ControlGet, selectedFiles, List, Selected Col1, SysListView321, ahk_id %_hWnd% 
    Loop, Parse, selectedFiles, `n ; Rows are delimited by linefeeds (`n). 
    { 
     If (A_Index = 1) 
     { 
      file := A_LoopField 
     } 
     Else 
     { 
      ; Indicate that several files are selected, we return only the first one 
      ; but count the total number of selected files, to indicate we return a partial result 
      ErrorLevel := A_Index 
     } 
    } 
    Return file 
} 

Et je reçois le chemin du champ d'édition de l'explorateur (qui est sujette à des problèmes peut être absent ou peut être configuré pour ne pas afficher! chemin complet).

L'idée de base est de demander au contrôle SysListView32 d'Explorer quels sont les éléments sélectionnés, et de les obtenir.

Maintenant, c'est un hack, il y a probablement des moyens plus propres ...

PS .: On trouve également ceci: Getting ListView items in C# from SysListView32 using SendMessage
Vous avez besoin d'voodoo pour le faire fonctionner sur un autre processus ...

réel code à a French site!

0

Je suis tombé sur ce script python. Mais je reçois uniquement le dossier qui est ouvert et non l'élément actuellement sélectionné dans ce dossier.

Quelqu'un a plus d'infos?

Questions connexes