Entwickler-Ecke

Windows API - Systemordner


Patschi - Sa 25.01.03 12:40
Titel: Systemordner
mit dem folgenden Code kann ich mir den Windows-Programme Ordner wiedergeben lassen:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
function TForm1.progDir: String;
var pidl: PItemIDList; Path: array[0..MAX_PATH] of Char;
begin
 If SUCCEEDED(SHGetSpecialFolderLocation(0$26, pidl)) Then begin
   SHGetPathFromIDList(pidl, Path);
   Result := Path;
 end;
end;

doch wie kann ich mir den Quickstartordner wiedergeben lassen?


Tino - Sa 25.01.03 15:36

Was ist denn der Quickstartordner?

Gruß


Delete - Sa 25.01.03 17:06

Ich tippe mal auf die Schnellstartleiste, die man bei Bedarf in die Taskbar einblenden kann? Wenn der sich immer unter "Anwendungsdaten/Microsoft/Internet Explorer/Quick Launch" befindet, sollte man über "Anwendungsdaten" (CSIDL_APPDATA) rankommen und den Rest ergänzen.

Aber: das ist nur eine Vermutung; auf die Schnelle habe ich keine CSIDL-Variable für den gesuchten Ordner gefunden.


Tana´Ri - Mi 30.07.03 10:26


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
Function CSIDL_To_PATH( CSIDL : integer; var Path : array of Char ) : Integer;
var IID_List  : PItemIDList;
 begin
   if SHGetSpecialFolderLocation(0,CSIDL,IID_List) = S_OK 
      result := Integer(SHGetPathFromIDList(IID_List,Path)) - 1
   else result := GetLastError;
end;

Function CreateFileQuickLaunchLink( Const SourcePath, NameOfLink: string ): integer; overload;
var DestPath  : array [0..MAX_PATH] of Char;
 begin
  if CSIDL_To_PATH( CSIDL_APPDATA, DestPath ) = S_OK  then
   begin
    result := CreateFileLink(SourcePath, NameOfLink, String(DestPath)+'\Microsoft\Internet Explorer\Quick Launch');
  end
   else result := GetLastError;
end;

Ich hatte auch in der Registry gesucht, da existiert zwar ein Eintrag mit Quick Launch, beinhaltet aber keinerlei Pfad, steht wahrscheinlich für den Ordnername ?. Aber so funzt es wenigstens unter Win2k.