Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi C:\Doku. u. Einstellungen\<Benutzername>\Anwendungsdaten (https://www.delphipraxis.net/74243-c-%5Cdoku-u-einstellungen%5C-benutzername-%5Canwendungsdaten.html)

xZise 31. Jul 2006 11:16


C:\Doku. u. Einstellungen\<Benutzername>\Anwendungsdat
 
Wie erreiche ich den Ordner
"C:\Dokumente und Einstellungen\<Benutzername>\Anwendungsdaten"?

Daniel G 31. Jul 2006 11:20

Re: C:\Doku. u. Einstellungen\<Benutzername>\Anwendung
 
Indem du dir diesen Code anguckst. :wink:

xZise 31. Jul 2006 11:25

Re: C:\Doku. u. Einstellungen\<Benutzername>\Anwendung
 
Und woher bekomme ich nun Max_Path?

Delphi-Quellcode:
function GetShellFolder(CSIDL: integer): string;
var
  pidl                  : PItemIdList;
  FolderPath            : string;
  SystemFolder          : Integer;
  Malloc                : IMalloc;
begin
  Malloc := nil;
  FolderPath := '';
  SHGetMalloc(Malloc);
  if Malloc = nil then
  begin
    Result := FolderPath;
    Exit;
  end;
  try
    SystemFolder := CSIDL;
    if SUCCEEDED(SHGetSpecialFolderLocation(0, SystemFolder, pidl)) then
    begin


      SetLength(FolderPath, max_path); // <:=------------- hier


      if SHGetPathFromIDList(pidl, PChar(FolderPath)) then
      begin
        SetLength(FolderPath, length(PChar(FolderPath)));
      end;
    end;
    Result := FolderPath;
  finally
    Malloc.Free(pidl);
  end;
end;

Daniel G 31. Jul 2006 11:31

Re: C:\Doku. u. Einstellungen\<Benutzername>\Anwendung
 
MAX_PATH ist eine Konstante. Ich glaube, der Wert ist 256 oder 512...

xZise 31. Jul 2006 11:33

Re: C:\Doku. u. Einstellungen\<Benutzername>\Anwendung
 
Wo ist diese Konstate deklariert?

kabuco 31. Jul 2006 11:36

Re: C:\Doku. u. Einstellungen\<Benutzername>\Anwendung
 
Hallo,

du könntest auch die Umgebungsvariablen mit GetEnvironmentVarable auslesen.. Hierzu diser Link: Link

Gruß kabuco

Bernhard Geyer 31. Jul 2006 11:36

Re: C:\Doku. u. Einstellungen\<Benutzername>\Anwendung
 
Zitat:

Zitat von xZise
Wo ist diese Konstate deklariert?

Solche Konstanten bekommt man - wenn sie in den Delphi-Sourcen definiert sind:

Einfach im Explorer den Delphi-Sourcepfad öffnen und mit Explorer in Pas-Dateien suchen ...
Oder GExpert installieren und mit Grep suchen.

freak4fun 31. Jul 2006 11:38

Re: C:\Doku. u. Einstellungen\<Benutzername>\Anwendung
 
Zitat:

Zitat von xZise
Wo ist diese Konstate deklariert?

Windows ;)

xZise 31. Jul 2006 11:42

Re: C:\Doku. u. Einstellungen\<Benutzername>\Anwendung
 
Und wie lautet der Übergabeparameter?
Delphi-Quellcode:
Showmessage(GetEnvironmentVariable(Parameter));
Das habe ich mit Parameter getestet:
  • appath
    apppath
    appdir
    appdate
Und zwar mit und ohne die % vor und dahinter

CalganX 31. Jul 2006 11:46

Re: C:\Doku. u. Einstellungen\<Benutzername>\Anwendung
 
Hi,
ich würde es mit den Konstanten, die im Code auf Luckies Seite (Link oben), versuchen.

Ansonsten, reicht es auch innerhalb der DP ein wenig zu suchen (z.B. der Code-Library): http://www.delphipraxis.net/internal_redirect.php?t=502

Chris

Edit: Achso. Bei den Umgebungsvariablen würde ich es mit APPDATA versuchen. Allerdings würde dein Programm sofort Probleme bekommen, wenn ich aus Jux und Dollerei "set appdata bla" eingebe. Imho also nicht unbedingt empfehlenswert.

Daniel G 31. Jul 2006 11:46

Re: C:\Doku. u. Einstellungen\<Benutzername>\Anwendung
 
Zitat:

Zitat von xZise
Und wie lautet der Übergabeparameter?
Delphi-Quellcode:
Showmessage(GetEnvironmentVariable(Parameter));

Warum nimmst du denn nicht einfach Luckie's Funktion?

freak4fun 31. Jul 2006 11:49

Re: C:\Doku. u. Einstellungen\<Benutzername>\Anwendung
 
Delphi-Quellcode:
Showmessage(GetEnvironmentVariable('appdata'));
Ich hab nen englisches BS. Weiß nicht ob das einen Unterschied macht. Zumindest geht das so bei mir. ;)

MfG
freak

EDatabaseError 31. Jul 2006 12:08

Re: C:\Doku. u. Einstellungen\<Benutzername>\Anwendung
 
Die stehen auch in der Registry. Ich hab da mal was geschriben.
In der CL nach Environment suchen Autor EDatabaseError
Da bekommst du den Pfad als String.

xZise 31. Jul 2006 12:11

Re: C:\Doku. u. Einstellungen\<Benutzername>\Anwendung
 
Ich habs jetzt mit Luckies Variante gelöst

DGL-luke 31. Jul 2006 12:13

Re: C:\Doku. u. Einstellungen\<Benutzername>\Anwendung
 
Zitat:

Zitat von Chakotay1308
Achso. Bei den Umgebungsvariablen würde ich es mit APPDATA versuchen. Allerdings würde dein Programm sofort Probleme bekommen, wenn ich aus Jux und Dollerei "set appdata bla" eingebe. Imho also nicht unbedingt empfehlenswert.

Andersrum wird n Schuh draus: Vielleicht will der Anwender zwischendurch mal das AppData-Verzeichnis umlenken? Wäre verdammt intelligent, die Umgebungsvariable und das Ergebnis von SHGetSpecialDingsbums zu vergleichen und im Zweifelsfall nachzufragen...


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:39 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