Announcement

Collapse
No announcement yet.

Win 2000-Spezialordner

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Win 2000-Spezialordner

    In den Windows 2000-Richtlinien wird gefordert, eigene Dateien auch im eigenen Verzeichnis zu speichern. Um den entsprechenden Pfad zu erhalten, solle man

    SHGetSpecialFolderLocation(NULL,CSIDL_PERSONAL,NUL L);

    benutzen. Auf meinem System (Win 98 SE) ist diese Funktion nicht vorhanden. Ist die in einer DLL, die es nur unter Win 2000 gibt? Gibt es etwas Entsprechendes unter Win 95/98? Oder muss ich deshalb ein DLL-Update mitliefern?

    Danke für Tipps!

  • #2
    Hallo,

    die Win32-API-Funktion <b>SHGetSpecialFolderLocation</b> steht ab Windows 95 immer dann zur Verfügung, wenn die Version 4.0 von shell32.dll auf dem Rechner installiert ist. Und das ist spätestens dann der Fall, wenn der Internet Explorer 4.x (oder höher) installiert wurde.

    In meinem Buch <b>COM/DCOM mit Delphi</b> habe ich in einem Beispielprojekt die folgende Funktion verwendet, die ab Windows 95 (mit installiertem IE) erfolgreich aufgerufen werden kann:
    <pre>
    function TFormMain.GetShellFolderPath(const aFolder: Integer): String;
    var
    pIIL : PItemIDList;
    szPath : array[0..MAX_PATH] of Char;
    aMalloc : IMalloc;
    begin
    Result := '';
    Assert(aFolder <= CSIDL_PRINTHOOD,'Falsche Shellfolder-Konstante');
    OleCheck(SHGetSpecialFolderLocation(0, aFolder, pIIL));
    SHGetPathFromIDList(pIIL, szPath);
    OleCheck(SHGetMalloc(aMalloc));
    aMalloc.Free(pIIL);
    Result := szPath;
    end;
    </pre>

    P.S: Wurden auch alle notwendigen Units (ShlObj, ActiveX, ComObj) eingebunden

    Comment


    • #3
      Vielen Dank für die Tipps - ich glaube, es liegt an den fehlenden Units! Und das Buch muss ich mir wohl auch mal besorgen... ;-

      Comment

      Working...
      X