Mam formularz w projekcie Delphi. W formularzu znajduje się przycisk. Kiedy użytkownik kliknie przycisk, chcę, aby otworzył Eksploratora Windows.Jak otworzyć Eksploratora Windows po kliknięciu przycisku?
Jaki kod będzie potrzebny, aby to osiągnąć?
Mam formularz w projekcie Delphi. W formularzu znajduje się przycisk. Kiedy użytkownik kliknie przycisk, chcę, aby otworzył Eksploratora Windows.Jak otworzyć Eksploratora Windows po kliknięciu przycisku?
Jaki kod będzie potrzebny, aby to osiągnąć?
Spróbuj tego:
ShellExecute(Application.Handle, nil, 'explorer.exe', nil, nil, SW_NORMAL);
Musisz dodać ShellAPI
do listy wykorzystuje klauzuli.
Opierając się na co Mason Wheeler powiedział: można również przekazać w katalogu jako argument, aby uzyskać okno otworzyć, aby non-domyślna lokalizacja:
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
);
Również w przypadku trzeba wybrać niektóre dany plik w Eksploratorze mam następujące funkcje, które używam
procedure SelectFileInExplorer(const Fn: string);
begin
ShellExecute(Application.Handle, 'open', 'explorer.exe',
PChar('/select,"' + Fn+'"'), nil, SW_NORMAL);
end;
i można nazwać:
SelectFileInExplorer('C:\Windows\notepad.exe');
EDIT: Jak wspomniano ShellAPI musi zostać dodany do listy uses
Według http://msdn.microsoft.com/en-us/library/bb762153%28VS.85%29.aspx, ShellExecute obsługuje również 'Eksploruj' czasownik, który 'Bada' folder określony przez lpFile, więc to powinno działać:
ShellExecute(Application.Handle, 'explore', '.', nil, nil, SW_NORMAL);
bardzo fajne, nie widziałem tego przed – JosephStyons
Czy to działa, jeśli plik nie był w C: \ ?? – Zeina
Tak, będzie działać na każdej poprawnej ścieżce systemu Windows – zz1433