2010-11-27 13 views
9

Usando la siguientearchivo en Windows Selección exploradores no siempre funciona

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

puedo abrir el Explorador de Windows y seleccione el archivo. En Delphi hago esto para seleccionar el archivo "Parm":

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

Y funciona. Mi problema es este: si selecciono un archivo diferente en el Explorador recientemente abierto (haciendo clic en un archivo diferente) y luego llamo al código anterior, el archivo "Parm" no se vuelve a seleccionar. Curiosamente, hay algunos programas que seleccionan el archivo nuevamente. Por ejemplo, iTunes siempre selecciona el archivo deseado.

¿Alguien tiene una idea de cómo hacer que Explorer siempre seleccione el archivo especificado?

Respuesta

13

Esta es una limitación conocida del uso del modificador/select con explorer.exe, solo seleccionará el archivo específico si la carpeta principal no está ya abierta.

Tendrás que usar una llamada API como SHOpenFolderAndSelectItems en lugar. Esta función también permite multiselección.

+0

Perfecto, gracias, estaba tratando de recordar el nombre de esta función atm –

+0

Un excelente ejemplo de SHOpenFolderAndSelectItems se puede encontrar aquí: http://stackoverflow.com/questions/15300999/open-windows-explorer-directory-select- a-specific-file-in-delphi – Lars