![]() |
Wie kann man den Folder "eigene Dateien" öffnen???
Hallo!
Wer weiß, wie man den Folder "eigene Dateien" öffnen kann. Zum Beipsiel kann der Folder "Drucker" mit folgender Funktion geöffnet werden.
Delphi-Quellcode:
Wichtig an dieser Funktion ist das Schlüsselwort "PrintersFolder".
procedure TForm1.Button1Click(Sender: TObject);
var slCmdLine: PAnsiChar; begin slCmdLine := 'SHELL32.DLL,SHHelpShortcuts_RunDLL PrintersFolder'; ShellExecute(handle, nil, 'rundll32.exe', slCmdLine, 0, SW_SHOWNORMAL); end; Kennt jemand noch mehr dieser Schlüsselwörter, am besten auch das für den Folder "eigene Dateien"? Gruß aus dem Emsland Max666 [edit=Admin]Delphi-Tags eingefügt. Künftig bitte selber machen. ;-) Mfg, Daniel[/edit] |
Re: Wie kann man den Folder "eigene Dateien" öffne
Hi,
mit ShellExecute bist du ja schon nah dran. ;) Such mal in der DP nach SHGetSpecialFolder ( ![]() Chris |
Re: Wie kann man den Folder "eigene Dateien" öffne
Zitat:
Zitat:
|
Re: Wie kann man den Folder "eigene Dateien" öffne
|
Re: Wie kann man den Folder "eigene Dateien" öffne
:oops: hmm... :oops:
|
Re: Wie kann man den Folder "eigene Dateien" öffne
|
Re: Wie kann man den Folder "eigene Dateien" öffne
|
Re: Wie kann man den Folder "eigene Dateien" öffne
Hallo!
Habe gute und schnelle Antworten erhalten. Aber ich muss sage, eigentlich habe ich alles gehabt, um das Problem selber zu lösen. Mit den nachfolgenden Proceduren kann man alle wichtigen System-Pfade finden und mit ShellExecute starten. Gruß Max666 ---
Delphi-Quellcode:
---
function TForm1.GetSpecialFolder(hWindow: HWND; Folder: Integer): String;
var pMalloc: IMalloc; pidl: PItemIDList; Path: PChar; begin // get IMalloc interface pointer if (SHGetMalloc(pMalloc) <> S_OK) then begin MessageBox(hWindow, 'Couldn''t get pointer to IMalloc interface.', 'SHGetMalloc(pMalloc)', 16); Exit; end; SHGetSpecialFolderLocation(hWindow, Folder, pidl); GetMem(Path, MAX_PATH); SHGetPathFromIDList(pidl, Path); Result := Path; FreeMem(Path); pMalloc.Free(pidl); end; procedure TForm1.findpath; var Handle: HWND; begin CSIDLPROGRAMS:=(GetSpecialFolder(Handle, CSIDL_PROGRAMS)); CSIDLCOMMONPROGRAMS:=(GetSpecialFolder(Handle, CSIDL_COMMON_PROGRAMS)); CSIDLDESKTOP:=(GetSpecialFolder(Handle, CSIDL_Desktopdirectory)); CSIDLCOMMONDESKTOP:=(GetSpecialFolder(Handle, CSIDL_COMMON_Desktopdirectory)); CSIDLRECENT:=(GetSpecialFolder(Handle, CSIDL_RECENT)); CSIDLPERSONAL:=(GetSpecialFolder(Handle, CSIDL_PERSONAL)); CSIDLFAVORITES:=(GetSpecialFolder(Handle, CSIDL_FAVORITES)); CSIDLCOMMONFAVORITES:=(GetSpecialFolder(Handle, CSIDL_COMMON_FAVORITES)); CSIDLNETWORK:=(GetSpecialFolder(Handle, CSIDL_NETHOOD)); CSIDLVORLAGEN:=(GetSpecialFolder(Handle, CSIDL_TEMPLATES)); end; // CSIDLPROGRAMS, ... sind globale Variablen vom Typ string procedure TForm1.Button1Click(Sender: TObject); var slCmdLine: PAnsiChar; path: string; begin path:=CSIDLPERSONAL; slCmdLine := Pchar(path); ShellExecute(handle, nil, 'explorer.exe', slCmdLine, 0, SW_SHOWNORMAL); end; [edit=Christian Seehase]Delphi-Tags gesetzt. Bitte künftig selber machen. Danke. Mfg, Christian Seehase[/edit] |
Re: Wie kann man den Folder "eigene Dateien" öffne
Zitat:
Delphi-Quellcode:
Ob ich jetzt erst deine Funktion FindPath aufrufe oder direkt Shellexecute mit GetSpecialFolder und der Konstanten macht keinen Unterschied. ich könnte das, was jetzt in der ButtonClick Routine steht auch in eine Funktion packen der ich eben die gewünschte CSIDL_xxx übergebe.
procedure TForm1.Button1Click(Sender: TObject);
begin ShellExecute(handle, 'explore', 'explorer.exe', PChar(GetSpecialFolder(Handle, CLSIDL_DESKTOP)), nil, SW_SHOWNORMAL); end; Und warum ist deine Funktion GetSpecialFolder eine Methode von TForm? Hat doch damit gar nichts am Hut. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:55 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz