2009-08-11 13 views

risposta

8

Prova questa:

ShellExecute(Application.Handle, nil, 'explorer.exe', nil, nil, SW_NORMAL); 

Avrai bisogno di aggiungere al vostro ShellAPIutilizza clausola.

10

Costruire su ciò che Mason Wheeler ha detto: si può anche passare in una directory come argomento, per ottenere la finestra per aprire una posizione non predefinita:

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 
    ); 
22

Ebbene nel caso in cui è necessario selezionare alcune particolare file in Esplora ho la seguente funzione che uso

procedure SelectFileInExplorer(const Fn: string); 
begin 
    ShellExecute(Application.Handle, 'open', 'explorer.exe', 
    PChar('/select,"' + Fn+'"'), nil, SW_NORMAL); 
end; 

e si può chiamare:

SelectFileInExplorer('C:\Windows\notepad.exe'); 

EDIT: Come accennato ShellAPI deve essere aggiunto all'elenco usi

+1

molto bello, non l'ho visto prima dello – JosephStyons

+0

Funzionerà se il file non fosse in C: \ ?? – Zeina

+0

Sì, funzionerà su qualsiasi percorso di Windows valido – zz1433

Problemi correlati