2010-11-27 35 views
9

Utilisation de lafichier Sélection dans Windows Explorers ne fonctionne pas toujours

suivante
explorer.exe /select, "c:\path\to\file.txt" 

je peux ouvrir l'Explorateur Windows et sélectionnez le fichier. En Delphi, je fais cela pour sélectionner le fichier "Parm":

ShellExecute(Application.MainForm.Handle, 'OPEN', PChar('explorer.exe'), PChar('/select,"' + Parm + '"'), nil, SW_NORMAL); 

Et cela fonctionne. Mon problème est le suivant: si je sélectionne un fichier différent dans l'Explorateur récemment ouvert (en cliquant dans un fichier différent) puis que j'appelle le code ci-dessus, le fichier "Parm" n'est pas sélectionné à nouveau. Il est intéressant de noter que certains programmes sélectionnent à nouveau le fichier. Par exemple, ITunes sélectionne toujours le fichier désiré.

Quelqu'un a-t-il une idée sur la manière de faire en sorte que Explorer sélectionne toujours le fichier spécifié?

Répondre

13

Il s'agit d'une limitation connue de l'utilisation du commutateur/select avec explorer.exe, il ne sélectionnera le fichier spécifique que si le dossier parent n'est pas déjà ouvert. Vous devrez utiliser un appel API comme SHOpenFolderAndSelectItems à la place. Cette fonction permet également le multiselect.

+0

Parfait, merci, j'essayais de me rappeler le nom de cette fonction atm –

+0

Un excellent exemple de SHOpenFolderAndSelectItems peut être trouvé ici: http://stackoverflow.com/questions/15300999/open-windows-explorer-directory-select- un-fichier-spécifique-en-delphi – Lars