He buscado por los foros y he encontrado diferentes soluciones, pero ninguna me funciona. He intentado probar cantidad de combinaciones con ShellExecute, pero nada.
Miro la declaración de ShellExecute:
Código Delphi
[-]
function ShellExecute(hWnd: HWND; Operation, FileName, Parameters,
Directory: PChar; ShowCmd: Integer): HINST; stdcall;
En hWnd pongo el Handle del formulario:
MainFrm.Handle, en Operation pongo
'open', en FileName le meto
'explorer.exe', en parameters pongo las opciones:
'/n,/e', en Directory pongo el directorio que quiero abrir:
FileName y finalmente en ShowCmd le indico
SW_SHOWNORMAL. Todo esto está en una Acción de un TActionManager:
Código Delphi
[-]
procedure TMainFRM.ExploreActExecute(Sender: TObject);
var
FileName: PAnsiChar;
begin
if (ExplorerList.ItemIndex >= 0) and
(Copy(ExplorerList.Selected.SubItems[3],1,1) = 'D') then
FileName := PChar(IncludeTrailingPathDelimiter(CurrLocalPath) +
IncludeTrailingPathDelimiter(ExplorerList.Selected.Caption))
else
FileName := PChar(IncludeTrailingPathDelimiter(CurrLocalPath));
ShellExecute(MainFrm.Handle,'open','explorer.exe','/e',FileName,SW_SHOWNORMAL);
end;
Pero esto no funciona, me abre el explorador de windows, pero no en la carpeta seleccionada, sino en C.
He probado sin ponerle el 'open', hace lo mismo, he probado de quitarle 'explorer.exe' y lo abre en una ventana del explorador normal (sin el árbol de directorios), no funciona.
Alguien sabe como puedo solucionar mi problema? Uso WinXP Pro, no se si el problema reside en esto, creo que no...