AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Pfad zu Application Data herauslesen

Pfad zu Application Data herauslesen

Ein Thema von Flinto · begonnen am 16. Jan 2006 · letzter Beitrag vom 4. Mai 2007
Antwort Antwort
Seite 2 von 2     12
Flinto

Registriert seit: 28. Okt 2004
Ort: Schlieren
40 Beiträge
 
#11

Re: Pfad zu Application Data herauslesen

  Alt 18. Jan 2006, 09:50
Also die version meiner shell32.dll ist 6.0. Das sollte
also kein Problem sein.
Kann man dann sagen ab welcher Window Version die
shell32.dll Version sicher 5.0 oder höher ist??
Oder gibt es sonst noch eine andere Möglichkeit
diese Systempfade herauszulesen??
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#12

Re: Pfad zu Application Data herauslesen

  Alt 18. Jan 2006, 10:03
Hai Flinton,

bei mir läuft es ab Windows 2000 prof. aufwärts. Unter Win 98 geht es nicht. Ein Win ME habe ich nicht installiert.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#13

Re: Pfad zu Application Data herauslesen

  Alt 18. Jan 2006, 10:16
Ich habe mal eben D5 angeworfen:

Delphi-Quellcode:
program Demo;
{$APPTYPE CONSOLE}
uses
  Windows,
  SysUtils,
  ActiveX,
  ShlObj;

function IncludeTrailingPathDelimiter(path: String): String;
begin
  Result := IncludeTrailingBackslash(path);
end;

function GetSpecialFolderLocation(csidl: integer): string;
var
  pMalloc: IMalloc;
  pidl: PItemIDList;
  path: array [0..MAX_PATH] of Char;
begin
  Result := '?';
  if SHGetMalloc(pMalloc) = S_OK then
  begin
    SHGetSpecialFolderLocation(0, csidl, pidl);
    SHGetPathFromIDList(pidl, path);
    Result := IncludeTrailingPathDelimiter(Path);
    pMalloc.Free(pidl);
  end;
end;

begin
  WriteLn(GetSpecialFolderLocation($23));
end.
Das Herzstück ist der API-Call SHGetSpecialFolderLocation() und zu dem sagt der Windows Platform SDK:

Code:
Minimum DLL Version shell32.dll  version 4.7 or later
Custom Implementation            No
Header                           shlobj.h
Import library                   shell32.lib
Minimum operating systems        Windows NT 4.0, Windows 95
marabu
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#14

Re: Pfad zu Application Data herauslesen

  Alt 18. Jan 2006, 10:21
Zitat von marabu:
...
Das Herzstück ist der API-Call SHGetSpecialFolderLocation() und zu dem sagt der Windows Platform SDK:
Minimum DLL Version shell32.dll version 4.7 or later
Jup.

Aber zu CSIDL_COMMON_APPDATA sagt das SDK

Zitat:
CSIDL_COMMON_APPDATA (0x0023)
Version 5.0. The file system directory containing application data for all users. A typical path is C:\Documents and Settings\All Users\Application Data.
Und darum dachte ich das für diese Funktion min. Version 5 der DLL vorhanden sein muss.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#15

Re: Pfad zu Application Data herauslesen

  Alt 18. Jan 2006, 11:05
Da hast du auch richtig gedacht, Sharky.

Die Konstante CSIDL_COMMON_APPDATA gibt es erst ab Windows 2000. Im PSDK findet man eine Übersicht, welche shell32.dll-Version welcher Windows-Version beiliegt.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#16

Re: Pfad zu Application Data herauslesen

  Alt 18. Jan 2006, 18:57
Moin Zusammen,

Zitat von MathiasSimmack:
Im PSDK findet man eine Übersicht, welche shell32.dll-Version welcher Windows-Version beiliegt.
und welchen Wert man für die jeweilige Konstante braucht, um das Verzeichnis auslesen zu lassen, falls die benutzte Delphi-Version diese nicht bereits implementiert hat.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
slemke76

Registriert seit: 29. Mär 2005
Ort: Quakenbrück
146 Beiträge
 
#17

Re: Pfad zu Application Data herauslesen

  Alt 4. Mai 2007, 16:45
Hallo,

Zitat von marabu:
die in deiner Unit SHLOBJ offensichtlich fehlen. Das geht so:
Delphi-Quellcode:
const
  CSIDL_COMMON_APPDATA = $0023;
Habe gerade mal unter D7 im Programmverzeichnis nach CSIDL gesucht.
In
uses SHFolder ist CSIDL_COMMON_APPDATA enthalten.

lg
Sebastian
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz