Tengo un formulario en un proyecto Delphi. Hay un botón en el formulario. Cuando el usuario hace clic en el botón, quiero que abra Windows Explorer.¿Cómo abrir Windows Explorer cuando hago clic en un botón?
¿Qué código necesitaré para lograr esto?
Tengo un formulario en un proyecto Delphi. Hay un botón en el formulario. Cuando el usuario hace clic en el botón, quiero que abra Windows Explorer.¿Cómo abrir Windows Explorer cuando hago clic en un botón?
¿Qué código necesitaré para lograr esto?
Prueba esto:
ShellExecute(Application.Handle, nil, 'explorer.exe', nil, nil, SW_NORMAL);
que necesitará añadir a su ShellAPI
utiliza cláusula.
Sobre la base de lo que Mason Wheeler dijo: también puede pasar en un directorio como argumento, para obtener la ventana para abrir a una ubicación no predeterminada:
uses
ShellAPI;
...
ShellExecute(Application.Handle,
nil,
'explorer.exe',
PChar('c:\'), //wherever you want the window to open to
nil,
SW_NORMAL //see other possibilities by ctrl+clicking on SW_NORMAL
);
Bueno, en caso de tener que seleccionar algunas archivo en particular en el explorador he la siguiente función que utilizo
procedure SelectFileInExplorer(const Fn: string);
begin
ShellExecute(Application.Handle, 'open', 'explorer.exe',
PChar('/select,"' + Fn+'"'), nil, SW_NORMAL);
end;
y se le puede llamar:
SelectFileInExplorer('C:\Windows\notepad.exe');
EDIT: Como hay que añadir mencionado ShellAPI a su lista de usos
Según http://msdn.microsoft.com/en-us/library/bb762153%28VS.85%29.aspx, ShellExecute también es compatible con el verbo 'explorar', que explora 'una carpeta especificada por lpFile, así que esto debería funcionar:
ShellExecute(Application.Handle, 'explore', '.', nil, nil, SW_NORMAL);
muy bien, no lo he visto antes de – JosephStyons
¿Esto funcionará si el archivo no estuviera en C: \ ?? – Zeina
Sí, funcionará en cualquier ruta válida de Windows – zz1433