Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Ini in Programmpfad oder "Eigene Dateien" (https://www.delphipraxis.net/107034-ini-programmpfad-oder-eigene-dateien.html)

Aurelius 21. Jan 2008 09:14


Ini in Programmpfad oder "Eigene Dateien"
 
Hi DPler :hi:

Ich meinem Programm werden Einstellungen in einer ini-Datei gesichert. Diese werden standardmäßig in den Eigenen Dateien gesichert (damit es keine Probleme mit Standard-Konten gibt). Desweiteren sollen alle Einstellungen auf Wunsch auch im Programmordner gesichert werden. Hierfür überprüfe ich zuerst ob eine ini-Datei in den beiden Ordnern vorliegt und, wenn das nicht der Fall sein sollte, wird eine Ini in den Eigenen Dateien erstellt. Per Checkbox werden diese auf Wunsch verschoben. Klappt auch alles wunderbar.

Da das Programm ohne Installer auskommt soll es auch einfach auf einen Stick gepackt werden und überall ausgeführt werden können. Und hier ist das Problem: wenn keine Ini im ProgrammOrdner liegt erstellt er ja, wie es eigentlich auch gewünscht ist, die ini in den Eigenen Dateien. Das ist auf fremden Computern aber nicht unbedingt erwünscht. Hättet ihr eine Lösung dafür? (ja, der User könnte dann auch in den Einstellungen die Checkbox klicken, aber wenn das vergessen wird...)

himitsu 21. Jan 2008 09:28

Re: Ini in Programmpfad oder "Eigene Dateien"
 
Wenn keine INI gefunden wird, dann einfach fragen wohin

'ne MessageBox beim Programmstart "keine INI gefunden, soll sie in 'eigene Dateien' erszellt werden?

Abrechen = Programmordner", (OK, Abrechen)




oder du stellst das Standardverhalten um ... also wenn nix in Eigene Dateien ist, dann Programmordner

Aurelius 21. Jan 2008 09:36

Re: Ini in Programmpfad oder "Eigene Dateien"
 
Zitat:

Zitat von himitsu
Wenn keine INI gefunden wird, dann einfach fragen wohin

'ne MessageBox beim Programmstart "keine INI gefunden, soll sie in 'eigene Dateien' erszellt werden?

Abrechen = Programmordner", (OK, Abrechen)

Wäre eine Möglichkeit...
Zitat:

oder du stellst das Standardverhalten um ... also wenn nix in Eigene Dateien ist, dann Programmordner
Das gibt ja auch Probleme ^^

himitsu 21. Jan 2008 09:50

Re: Ini in Programmpfad oder "Eigene Dateien"
 
Das ist halt immer so ein Problem.

möchte ja bald mal mein FileSync-Programm überarbeiten und unter anderem mit 'nem Backup der gänderten Daten erweitern, aber diese sollen z.B. möglichst den USB-Sick nicht vollmüllen (da ja 'ne menge Platz durch sowas verloren ginge, aber ein Backup der geänderten Dateien soll auch nicht auf jeden fremden Rechner landen ... (und so'ne richtige Lösung hab'sch da auch noch nicht :cry: aber im Endeffekt werd ihch wohl 'ne Sinatur in den Zielrechnern hinterlegen, also da wo es auf'm Rechner landen soll ... oder beim Programm liegt dann 'ne Liste der Rechner (HWID) wie es wo sein soll)


Aber bei deinem Problem ist dann wohl das mit'm Nachfragen sinnvoller.
Is ja schließlich auch nur 'ne kleine Frage, die auch nur einmal abgefragt wird.

Aurelius 21. Jan 2008 09:53

Re: Ini in Programmpfad oder "Eigene Dateien"
 
Dann werde ich das so machen.

Gausi 21. Jan 2008 10:17

Re: Ini in Programmpfad oder "Eigene Dateien"
 
Ich habe das für eins meinre Programme so gelöst:

Wenn das Programm sich im Programme-Ordner befindet, also quasi vom Nutzer/Admin "installiert" wurde, dann werden die Einstellungen im Anwendungsdaten-Verzeichnis des entsprechenden Users geladen und gespeichert.

Wenn sich das Programm woanders befindet, also z.B. in einem temporären Ordner zum Testen, oder auf einem USB-Stick oder ähnliches, dann werden die Daten im Programmverzeichnis geladen und gespeichert.

OregonGhost 21. Jan 2008 10:21

Re: Ini in Programmpfad oder "Eigene Dateien"
 
Gausis Methode finde ich gar nicht mal so schlecht. Wie überprüfst du denn, ob sich das Programm im Programme-Verzeichnis befindet? Ich könnte mir alternativ auch gut vorstellen, dass man prüft, ob man Schreibrechte im Programmverzeichnis hat.
Den Benutzer zu Beginn zu fragen ist zwar nicht unbedingt verkehrt, aber Benutzer mögen ja bekanntermaßen keine Fragen.

Aurelius 21. Jan 2008 10:22

Re: Ini in Programmpfad oder "Eigene Dateien"
 
Das wäre wahrscheinlich noch besser, daher schließe ich mich mich mal OGs Frage an :D

Gausi 21. Jan 2008 10:26

Re: Ini in Programmpfad oder "Eigene Dateien"
 
Delphi-Quellcode:
CSIDL_PROGRAM_FILES = $26;

if AnsiStartsText(GetShellFolder(CSIDL_PROGRAM_FILES), Paramstr(0)) then ...
Die Funktion GetShellfolder gibts mit Sicherheit hier irgendwo im Forum - das ist halt die, die die speziellen Ordner findet. :D

Aurelius 21. Jan 2008 10:35

Re: Ini in Programmpfad oder "Eigene Dateien"
 
So hätte ich es auch gemacht (die SpecialFolder-Fnktion gibts ja hier)


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:14 Uhr.
Seite 1 von 2  1 2      

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