AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Vista, XP & Co.: Dateien speichern

Ein Thema von MCXSC · begonnen am 4. Sep 2008 · letzter Beitrag vom 4. Sep 2008
Antwort Antwort
MCXSC
(Gast)

n/a Beiträge
 
#1

Vista, XP & Co.: Dateien speichern

  Alt 4. Sep 2008, 02:36
Hallo,

ich habe eine eigentlich kurze Frage. Mit Vista hat MS ja einen Weg eingeschlagen, der eigentlich postiv ist: Programmdateien (Konfigurationsdateien, etc.) werden in einem Ordner ("Users") gespeichert - ansonsten darf das Programm eben nicht schreiben oder muss mit Adminrechten gestartet werden.

Das Problem: Simple "One-EXE-Tools", die nur eine kleine Konfigdatei benötigen, brauchen direkt einen eigenen Ordner. Darum meine Frage: Wie sollten bei solchen Programmen die Dateien gespeichert werden? Wohin idealerweise bei Vista, XP und vielleicht auch Win2000...

MCXSC
  Mit Zitat antworten Zitat
Benutzerbild von Cyberbob
Cyberbob

Registriert seit: 24. Jan 2005
Ort: Karben
626 Beiträge
 
Delphi XE7 Architect
 
#2

Re: Vista, XP & Co.: Dateien speichern

  Alt 4. Sep 2008, 03:59
Du könntest die Daten auch in der Registry ablegen. Der Zugriff auf den User-Zweig sollte imho auch ohne adminrechte möglich sein
Christian
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Vista, XP & Co.: Dateien speichern

  Alt 4. Sep 2008, 06:33
Zitat:
Mit Vista hat MS ja einen Weg eingeschlagen
Nein diesen Weg haben sie schon lang eingeschlagen, jetzt setzen sie es nur durch,
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Vista, XP & Co.: Dateien speichern

  Alt 4. Sep 2008, 07:21
Zitat von MCXSC:
Wie sollten bei solchen Programmen die Dateien gespeichert werden? Wohin idealerweise bei Vista, XP und vielleicht auch Win2000...
Gib mal im Startmenu unter Ausführen %AppData% ein. Dieser Pfad gibt es AFAIK auch schon seit W2K. In der JEDI gibt es Funktionen die diese Systempfade per offizieller API auslesen.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
MCXSC
(Gast)

n/a Beiträge
 
#5

Re: Vista, XP & Co.: Dateien speichern

  Alt 4. Sep 2008, 23:32
Zitat von mkinzler:
Zitat:
Mit Vista hat MS ja einen Weg eingeschlagen
Nein diesen Weg haben sie schon lang eingeschlagen, jetzt setzen sie es nur durch,
Ja, meinte ich ja. Also sollte jedes noch so kleine Programm, was konfiguriert werden kann, die Datei(en) in den Ordner speichern? Die Registry wäre ja noch unsauberer.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Vista, XP & Co.: Dateien speichern

  Alt 4. Sep 2008, 23:35
In das Benutzerprofil
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von FAlter
FAlter

Registriert seit: 21. Jul 2004
Ort: Ostfildern
1.096 Beiträge
 
FreePascal / Lazarus
 
#7

Re: Vista, XP & Co.: Dateien speichern

  Alt 4. Sep 2008, 23:45
Hi,

es gibt da so eine Systemfunktion, die die sagt, wohin die Daten gehören. Egal, unter welchem Win, die landen dann immer an der richtigen Stelle, auch, wenn sich das mal ändert.

Für Delphi vereinfacht dann so:

Delphi-Quellcode:

// [url]http://www.delphipraxis.net/post488514.html#488514[/url]
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;
Steht ganz oft hier in der DP, ich guck lieber in meinem Source nach, aber da hab ich ja die Quelle angegeben. Hab sie irgendwo aus der DP rauskopiert. Gibt aber glaub ich noch ne verbesserte Variante.

Und dann:

Delphi-Quellcode:
AppDataDir := GetSpecialFolderLocation(CSIDL_APPDATA) +
    'DeinNameOderDeineFirmaOderSo\DeinProgramm\';
  ForceDirectories(AppDataDir);
Und dann existiert dein Anwendungsdatenverzeichnis. Am besten du schreibst noch ein Tool dazu, dass die Userrückstände dann später löscht, da die Deinstallation natürlich nicht auf ALLE Userprofile zugreift.

Mfg
FAlter

[edit] Für ein kleines Tool empfiehlt es sich, das wählbar zu gestalten, entweder direkt im Anwendungsverzecihnis (z. B. wenn es auf USB-Stick ist) oder unter Anwendugsdaten (lokal installiert). Sieh dir mal meine tolles Hier im Forum suchenHaushaltsbuch an. [/edit]
Felix Alter
  Mit Zitat antworten Zitat
Antwort Antwort


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 02:39 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