En mi aplicación puedo programación explorador abierto y seleccione un archivo usando el siguiente código:seleccionar mediante programación archivo en el Explorador
void BrowseToFile(LPCTSTR filename)
{
CString strArgs;
strArgs = _T("/select,\"");
strArgs += filename;
strArgs += _T("\"");
ShellExecute(0, _T("open"), _T("explorer.exe"), strArgs, 0, SW_NORMAL);
}
Mi problema es que si llamo a esta función por segunda vez con un archivo diferente, pero en la misma carpeta, la selección en el explorador no cambia al nuevo archivo, sino que permanece en el archivo anterior.
Por ejemplo, si llamo a mi función con C:\path\to\file1.txt
, se abrirá una nueva ventana del explorador y se seleccionará file1.txt
. Si llamo a mi función por segunda vez con C:\path\to\file2.txt
, se activará la ventana del explorador existente, pero la selección seguirá estando en file1.txt
.
¿Hay alguna manera de forzar al explorador a actualizar la selección o una forma mejor de lograr esto?
EDIT:
El comportamiento mencionado anteriormente era en Windows XP. Parece que el comportamiento en Vista/Win7 es diferente. Cada llamada abrirá una nueva instancia de explorador y seleccionará el archivo.
Mi objetivo principal es replicar la opción de Visual Studio a Abrir carpeta que contiene de un documento. Esta característica en Visual Studio se comporta de la misma manera en XP, Vista y Win7. No creará una nueva instancia si ya está abierta otra instancia con la misma carpeta, pero actualizará la selección al nuevo archivo.
Si alguien sabe cómo Visual Studio logra esto, me gustaría saberlo.
No veo este comportamiento en Windows 7 x64. Dos ventanas se abren correctamente, cada una con el archivo correcto seleccionado. –
Tiene razón, el comportamiento en Vista y Win 7 es diferente. He actualizado mi pregunta para mencionar esto. – flashk
http://stackoverflow.com/questions/4831101/how-to-re-use-existing-already-opened-windows-explorer-window-to-launch-explorer y http://stackoverflow.com/questions/8182494/how-can-i-set-an-existing-explorer-exe-instance-to-select-a-file related related ... – rogerdpack