AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein TJvAppIniFileStorage mit Location=flExeFile speichert unter Win XP zusätzlich im Wind
Thema durchsuchen
Ansicht
Themen-Optionen

TJvAppIniFileStorage mit Location=flExeFile speichert unter Win XP zusätzlich im Wind

Ein Thema von nietzke · begonnen am 20. Feb 2015 · letzter Beitrag vom 5. Mär 2015
Antwort Antwort
Seite 1 von 2  1 2      
nietzke

Registriert seit: 8. Sep 2012
6 Beiträge
 
Delphi 5 Enterprise
 
#1

TJvAppIniFileStorage mit Location=flExeFile speichert unter Win XP zusätzlich im Wind

  Alt 20. Feb 2015, 14:02
Zum Speichern der Fenstereinstellungen nutze ich TJvAppIniFileStorage. Location ist auf flExeFile eingestellt. Unter Windows XP wird die ini-Datei wie gewünscht im Programmpfad gespeichert, aber zusätzlich noch im Windows-Pfad. Bei Nutzern mit eingeschränkten Rechten kommt es zur Fehlermeldung, dass die ini-Datei nicht gespeichert werden kann.
Woran liegt das, wie läßt sich das vermeiden?
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke
Online

Registriert seit: 10. Jun 2003
Ort: Berlin
9.332 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: TJvAppIniFileStorage mit Location=flExeFile speichert unter Win XP zusätzlich im

  Alt 20. Feb 2015, 16:16
Das kann ich nicht reproduzieren.

Zum Testen habe ich:
  • TJvAppIniFileStorage aufs Formular gelegt
  • Location steht schon auf flExeFile
  • Filename auf abc.ini gesetzt
  • TJvFormStorage aufs Formular gelegt
  • Dort AppStorage auf die Storagekomponente gestellt
Die abc.ini wird korrekt im Anwendungspfad der Exe gespeichert und gelesen, nirgends sonst.

// EDIT:
Getestet unter Windows 8.1 und XP.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!

Geändert von jaenicke (20. Feb 2015 um 16:21 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.170 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: TJvAppIniFileStorage mit Location=flExeFile speichert unter Win XP zusätzlich im

  Alt 20. Feb 2015, 18:33
Speichern im Anwendungspfad ist schlecht. Funktioniert unter W2k und XP nur als Hauptbenutzer und ab Vista nur mit daktiverter UAC oder wenn die Virtualisierung aktiv ist.
Genau ist es mit dem Windows-Pfad.

Speichern an diesen Stellen war für Win9x/ME ganz brauchbar. In der NT-Schiene von Windows eigentlich schon immer eine schlechte Wahl.
In alten Windows-Versionen war der %Appdata%-Pfad sinnvoll. Ab Vista ist hier eher C:\ProgramData zu verwenden.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: TJvAppIniFileStorage mit Location=flExeFile speichert unter Win XP zusätzlich im

  Alt 20. Feb 2015, 19:34
Der %APPDATA% Pfad ist doch perfekt, dann werden die Einstellungen benutzerbezogen gespeichert.

Wer nur alleine vor dem Rechner hockt, dem mag das schnurz sein, als Quasi-Standard würde ich das nicht ansetzen.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
961 Beiträge
 
Delphi 6 Professional
 
#5

AW: TJvAppIniFileStorage mit Location=flExeFile speichert unter Win XP zusätzlich im

  Alt 21. Feb 2015, 14:49
Und die Einschränkungen im Zugriff gilt nur, wenn der Anwendungspfad unterhalb vom 'Program Files' liegt.

Ist die Anwendung in einem anderem Verzeichnis oder Laufwerk, dann funktioniert das Schreiben von INI-Files problemlos.
  Mit Zitat antworten Zitat
nietzke

Registriert seit: 8. Sep 2012
6 Beiträge
 
Delphi 5 Enterprise
 
#6

AW: TJvAppIniFileStorage mit Location=flExeFile speichert unter Win XP zusätzlich im

  Alt 27. Feb 2015, 08:33
Sinn des Speicherns in den Programmpfad ist, dass man das Programm im Prinzip von einem Stick starten kann und es wird nichts außerhalb des Programmpfads gespeichert. (So war es zumindest gedacht) Die IT-Leute in Krankenhäusern sind immer froh, wenn nicht irgendwelche Dateien irgendwo hin gespeichert werden.
Ich verstehe nur nicht, warum die ini-Datei überhaupt in den Windows-Pfad gespeichert wird. Bei der Kollegin gab es eine Fehlermeldung, weil kein Schreibrecht in diesem Pfad besteht.
Ich verwende JVCL337CompleteJCL1105-Build3400, die neuste Version, die mit Delphi 5 Enterprise läuft. Evtl. gibt es das Phänomen in neueren Versionen nicht mehr.
Hat jemand eine Idee, wie man den zusätzlichen Speicherversuch unterbinden kann?
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#7

AW: TJvAppIniFileStorage mit Location=flExeFile speichert unter Win XP zusätzlich im

  Alt 27. Feb 2015, 08:42
Sinn des Speicherns in den Programmpfad ist, dass man das Programm im Prinzip von einem Stick starten kann und es wird nichts außerhalb des Programmpfads gespeichert. (So war es zumindest gedacht)
Dann gib deinem Programm eine Option mit, ob die in diesem Kontext portable ist oder eben nicht.
Die IT-Leute in Krankenhäusern sind immer froh, wenn nicht irgendwelche Dateien irgendwo hin gespeichert werden.
Es wird nicht irgendwo gespeichert, sondern an der Stelle, wo es vom Erbauer des Betriebssystems vorgesehen ist. Und es gibt da einige Plätze, wo du das ablegen kannst, abhängig davon, ob die Daten z.B. in einer Domain mit in der Profil-Sicherung sind oder nicht.

Problematisch ist eben, dass sich ein großer Teil der Programmierer daran einfach ums Verrecken nicht halten will. So gehört es auch zum guten Ton an diesen Ablage-Orten ein entsprechendes Unterverzeichnis anzulegen.

Meine Struktur die ich dort anlege lautet:
Code:
de.<companyname>
+-<appname>
  +-(ab hier sind die Daten für diese Anwendung zu finden)
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
nietzke

Registriert seit: 8. Sep 2012
6 Beiträge
 
Delphi 5 Enterprise
 
#8

AW: TJvAppIniFileStorage mit Location=flExeFile speichert unter Win XP zusätzlich im

  Alt 27. Feb 2015, 08:48
Dann gib deinem Programm eine Option mit, ob die in diesem Kontext portable ist oder eben nicht.
Und wie unterbinde ich in der portablen Version das Speichern im Windows-Verzeichnis, obwohl ich Location ist auf flExeFile eingestellt?
  Mit Zitat antworten Zitat
nietzke

Registriert seit: 8. Sep 2012
6 Beiträge
 
Delphi 5 Enterprise
 
#9

AW: TJvAppIniFileStorage mit Location=flExeFile speichert unter Win XP zusätzlich im

  Alt 5. Mär 2015, 09:49
Und wie unterbinde ich in der portablen Version das Speichern im Windows-Verzeichnis, obwohl Location auf flExeFile eingestellt ist?
Hat jemand eine Idee dazu?
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#10

AW: TJvAppIniFileStorage mit Location=flExeFile speichert unter Win XP zusätzlich im

  Alt 5. Mär 2015, 10:18
Ja, ich würde die Komponente umschreiben, denn so ist die nicht wirklich zu gebrauchen.

Als Speicherort für den Benutzer benötigst du 3 Optionen
  • Roaming -> Benutzer-Einstellungen in %APPDATA%\<Anwendungs-Pfad>\foo.exe.ini
  • Local -> Benutzer-Einstellungen in %LOCALAPPDATA%\<Anwendungs-Pfad>\foo.exe.ini
  • Portable -> Benutzer-Einstellungen im Pfad der Anwendung foo.exe.<User-SID AS Hex>.ini
Generell macht es auch Sinn eine Standard-Konfiguration mitzugeben, die dann in der Datei foo.exe.ini zu finden ist.

Diese generelle Einstellung wird dann mit den Benutzer-Einstellungen "gemischt". Ist also ein Wert in der Benutzer-Einstellungen nicht vorhanden, dann wird der Wert aus den Standard-Einstellungen geladen. Beim Speichern der Werte, werden diese ausschließlich in der Benutzer-Konfiguration gespeichert.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      

 

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 08:01 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