Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Richtiges AppData-Verzeichnis (https://www.delphipraxis.net/87650-richtiges-appdata-verzeichnis.html)

Catbytes 3. Mär 2007 18:07


Richtiges AppData-Verzeichnis
 
Hallo,

ich bin gerade dabei, meine Programme so umzuschreiben, daß sie die Einstellungen etc. in das richtige AppData-Verzeichnis schreiben, weil ich auch so ein Programmierer bin, der das gerne im Programmverzeichnis macht. :oops:

Jetzt habe ich mir diesen Artikel durchgelesen. Da steht zwar was von "C:\Dokumente und Einstellungen\<Benutzername>\Anwendungsdaten", aber nicht von "C:\Dokumente und Einstellungen\All Users\Anwendungsdaten". Was mache ich, wenn ich Daten habe, die sowohl für alle, als auch nur für einen einzelnen Benutzer gelten?

Beispiel:
Ich schreibe ein Quizprogramm. Alle Fragen/Antworten sollen in das All Users-Verzeichnis (jeder soll ja die gleichen Fragen/Antworten bekommen). Die Einstellungen zum Programm (Farbeinstellungen etc.) bleiben jedem Benutzer selbst überlassen. Eine evtl. Top10 soll dann wieder für alle sichtbar sein usw.

Wie gehe ich mit Windows-Versionen unter NT um (95, 98, ME)?
Was muß ich in Hinsicht auf Windows Vista beachten?

DGL-luke 3. Mär 2007 19:06

Re: Richtiges AppDate-Verzeichnis
 
Das "All Users"-Verzeichnis solltest du auch per GetShellFolder bekommen. Moment... "CSIDL_COMMON_APPDATA (0x0023)" (http://msdn.microsoft.com/library/de...nums/csidl.asp)

Catbytes 4. Mär 2007 17:33

Re: Richtiges AppDate-Verzeichnis
 
Zitat:

Zitat von DGL-luke
Das "All Users"-Verzeichnis solltest du auch per GetShellFolder bekommen.

Ja danke! Das weiß ich.

Mir ging es nur darum: Wie gehe ich mit Einstellungen um, die alle Benutzer was angehen. Das All Users-Verzeichnis ist IMHO nur auf Benutzerrechte eingestellt (also ohne Schreibrechte). Wie macht man es da Windowskonform, Sachen für alle abzuspeichern mit Benutzerrechten. Muß doch irgendwie gehen.

Und was sagt Win 95, 98, ME und Vista zu dem ganzen?

DGL-luke 4. Mär 2007 17:42

Re: Richtiges AppDate-Verzeichnis
 
Öhm... du solltest auf All Users schon Schreibzugriff haben.

Daniel G 4. Mär 2007 17:47

Re: Richtiges AppDate-Verzeichnis
 
Das Verzeichnis hat übrigens nichts mit dem Datum (AppDate) zu tun... :mrgreen:

Catbytes 4. Mär 2007 17:57

Re: Richtiges AppDate-Verzeichnis
 
Zitat:

Zitat von DGL-luke
Öhm... du solltest auf All Users schon Schreibzugriff haben.

Tja - das ist genau mein Dilemma:
Auf der einen Seite möchte ich, daß das Programm auch korrekt läuft, wenn man als Benutzer angemeldet ist. Auf der anderen Seite brauche ich einen Ort zum abspeichern von globalen Sachen. Da bietet sich das All Users-Verzeichnis an, womit ich aber als normaler Benutzer keine Schreibrechte habe. Wie mache ich das unter Windows?

Zitat:

Zitat von Daniel G
Das Verzeichnis hat übrigens nichts mit dem Datum (AppDate) zu tun... :mrgreen:

*grummel* :-D Habs geändert... *g*

sakura 4. Mär 2007 18:20

Re: Richtiges AppDate-Verzeichnis
 
Zitat:

Zitat von Catbytes
Zitat:

Zitat von DGL-luke
Öhm... du solltest auf All Users schon Schreibzugriff haben.

Tja - das ist genau mein Dilemma:

Wieso, jeder sollte in All Users schreiben können, da es genau dafür gedacht ist...

...:cat:...

SirThornberry 4. Mär 2007 18:22

Re: Richtiges AppDate-Verzeichnis
 
Zitat:

Zitat von sakura
Zitat:

Zitat von Catbytes
Zitat:

Zitat von DGL-luke
Öhm... du solltest auf All Users schon Schreibzugriff haben.

Tja - das ist genau mein Dilemma:

Wieso, jeder sollte in All Users schreiben können, da es genau dafür gedacht ist...

...:cat:...

Geht aber leider nicht zumindest nur eingeschränkt. Wenn Nutzer X eine Datei darin speichert darf Nutzer Y diese in der Regel nicht ändern.

zahor 4. Mär 2007 18:23

Re: Richtiges AppData-Verzeichnis
 
Bei Vista ist das Verzeichnis ganz Anders:
C:\Users\<Benutzername>\AppData\Roaming\
Und im Ordner All Users gibt es gar kein Verzeichnis Appdata.
Mit GetShellFolder sollte das aber kein Problem sein.
Sonst könntest du noch die Registry weiter füllen, damit das Backup über 100 MB hat ;-)

Christian Seehase 4. Mär 2007 18:33

Re: Richtiges AppData-Verzeichnis
 
Moin Catbytes,

Einstellungen, die während der Nutzung verändert werden können, sollten ausschliesslich Userspezifisch gespeichert werden, damit sich die verschiedenen Anwender nicht gegenseitig die Einstellungen zerschiessen.
Welche Daten, die verändert werden können, sollten denn Systemweit gelten?

Zitat:

Zitat von sakura
Wieso, jeder sollte in All Users schreiben können, da es genau dafür gedacht ist...

Nein, dafür ist "All Users\Gemeinsame Dokumente" zuständig, und nicht pauschal das ganze "All Users"-Verzeichnis.

Catbytes 5. Mär 2007 09:11

Re: Richtiges AppData-Verzeichnis
 
Zitat:

Zitat von Christian Seehase
Moin Catbytes,
Welche Daten, die verändert werden können, sollten denn Systemweit gelten?

Spontan fällt mir da eine DB-Anwendung ein. Laß es die Kochrezeptesammlung oder das digitale TV-Heft sein. Ich kann ja nicht für jeden Benutzer eine eigene DB nehmen. Vor allem dann nicht, wenn Benutzer A ein neues Rezept schreibt, daß auch Benutzer B sehen/ändern soll.

Und die einzelnen Datensätze den einzelnen Benutzern zuzuordnen stelle ich mir inkonsistent vor. Gerade z.B. bei Primärkeys mit Autowert.

Das die einzelnen Einstellungen wie Farbeinstellungen etc. nur für die Benutzer gelten sollen, habe ich ja schon geschrieben - das ist ja auch an sich kein Problem. Mir geht es wirklich nur um All Users. Einfach mal in den eigenen All Users-Ordner schauen - da tummelt sich ne ganze Menge.

Luckie 5. Mär 2007 09:16

Re: Richtiges AppData-Verzeichnis
 
Dagfür nimmt man einen DB-Server. Dieser kann auch lokal auf dem Rechner laufen.

Catbytes 5. Mär 2007 09:22

Re: Richtiges AppData-Verzeichnis
 
Zitat:

Zitat von Luckie
Dagfür nimmt man einen DB-Server. Dieser kann auch lokal auf dem Rechner laufen.

Wäre das nicht etwas overdozed für 'ne simple "Kochsammlung"? Und wo sollte dieser DB-Server laufen? Sag jetzt nicht Programmverzeichnis :mrgreen:

Da wäre ich dann wieder am Anfang meiner Reise, wo ich eigentlich weg wollte...

Es kann doch nicht sein, daß mir das 'mächtige' BS Windows hier nicht helfen kann. Simple Aufgabe: Alle Benutzer eines Systems sollen auf Daten Zugriff erhalten. Sowohl lesend als auch schreibend. Und ich möchte nicht die Registry.

Luckie 5. Mär 2007 09:25

Re: Richtiges AppData-Verzeichnis
 
Der DB-Server wird in das nach c:\Programme installiert, wo er auch hingehört. Zugriff erfolgt über einen Dienst / DB-Treiber. Installier dir mal MySQL und guck dir das an. Und 'oversized' ist es dann nicht, wenn mehrere Benutzer gleichzeitig auf die DB zugreifen sollen, denn dann brauchst du eine gescheite Datenbank.

MagicAndre1981 5. Mär 2007 09:35

Re: Richtiges AppData-Verzeichnis
 
:shock: *Hust* :shock:

MySQL = gescheite DB :wall: :wall:

Luckie 5. Mär 2007 09:40

Re: Richtiges AppData-Verzeichnis
 
Ich will hier jetzt nicht über die Eignung von MYSQL diskutieren, das war nur ein Beispiel, obwohl ich deine Abneigung nicht nachvollziehen kann, zu mal du sie hier unbegründet in den Raum gestellt hast.

Catbytes 5. Mär 2007 09:44

Re: Richtiges AppData-Verzeichnis
 
Zitat:

Zitat von Luckie
Der DB-Server wird in das nach c:\Programme installiert, wo er auch hingehört. Zugriff erfolgt über einen Dienst / DB-Treiber. Installier dir mal MySQL und guck dir das an. Und 'oversized' ist es dann nicht, wenn mehrere Benutzer gleichzeitig auf die DB zugreifen sollen, denn dann brauchst du eine gescheite Datenbank.

Das ist aber genau das, was ich verhindern möchte. Einen Dienst zu installieren wird hier im Forum generell als "kritisch" betrachtet. Wie oft habe ich schon gelesen: "Was Dienst installieren - kommt mir nicht auf die Platte". Und für das, was ich vorhabe langt MS-Access bzw. DBISAM vollkommen aus. Die Benutzer greifen ja bei einem Mehrbenutzerprogramm nicht gleichzeitig, sondern abwechselnd zu (je nachdem, wer gerade angemeldet ist). Als Einzelplatz-DB ist Access vollkommen in Ordnung. Ich würde zustimmen, wenn das ganze im Netz läuft mit >5 Benutzer gleichzeitg. Auf C:\Programme habe ich nunmal keine Rechte als Benutzer. Ich möchte doch nur, daß die Benutzer mit ihren normalen Rechten alles dürfen innerhalb des Programms und nichts ins Programmverzeichnis kommt (so wie es MS vorschlägt und hier im Tenor im Forum immer wieder gepredigt wird).

Ich glaube so langsam gebe ich mein Vorhaben auf und knalle einfach wieder alles ins Programmverzeichnis. Wenn dann ein Benutzer kommt und sagt "da geht was nicht", schlage ich ihm vor, sich als Admin anzumelden. So wie ich es schon dutzendfach von anderen Proggern gehört habe, deren Programme ich nutze. Traurig aber wahr...

MagicAndre1981 5. Mär 2007 09:46

Re: Richtiges AppData-Verzeichnis
 
[OT]
DB Crash beim Schreiben von Daten bei einem Stromausfall ist ein KO-Kriterium für ein DBMS :roll:
Dann die chaotischen Lizenzbedingungen, das Fehlen von Transaktionen bei MyISAM (weiteres KO-Kriterium bei DBS) :wall:
[/OT]

MagicAndre1981 5. Mär 2007 09:49

Re: Richtiges AppData-Verzeichnis
 
Zitat:

Zitat von Catbytes
Das ist aber genau das, was ich verhindern möchte. Einen Dienst zu installieren wird hier im Forum generell als "kritisch" betrachtet. Wie oft habe ich schon gelesen: "Was Dienst installieren - kommt mir nicht auf die Platte".

:shock: häh, was für ein Quatsch. Interaktive Dienste sind ein Risiko, aber normale Dienste nicht :gruebel:

Zitat:

Zitat von Catbytes
Ich glaube so langsam gebe ich mein Vorhaben auf und knalle einfach wieder alles ins Programmverzeichnis. Wenn dann ein Benutzer kommt und sagt "da geht was nicht", schlage ich ihm vor, sich als Admin anzumelden. So wie ich es schon dutzendfach von anderen Proggern gehört habe, deren Programme ich nutze. Traurig aber wahr...

:gruebel: Warum? Der Admin installiert die DB und den DBMS, dann haben die User doch kein Problem damit wo der Server liegt.

SirThornberry 5. Mär 2007 10:00

Re: Richtiges AppData-Verzeichnis
 
Hab ihr eignetlich gelesen was "Christian Seehase" geschrieben hatte? Es gibt einen ordner wo schreibzugriffen von allen möglich sind und genau das war doch gewünscht. Was spricht jetzt dagegen für diesen Fall dieses Verzeichnis zu verwenden?

Luckie 5. Mär 2007 10:06

Re: Richtiges AppData-Verzeichnis
 
Also auf meinem Rechner haben dort einfache Benutzer nur Leserechte.

FBrust 5. Mär 2007 10:42

Re: Richtiges AppData-Verzeichnis
 
Hallo,

die Frage interessiert mich jetzt auch:


Gegeben sei folgendes Szenario: Es ist eine Applikation, die mit einer lokalen Datenbank arbeitet. An dem Rechner arbeiten (abwechselnd) verschiedene Anwender mit dem Programm. Es gibt kein Netzwerk bzw. es kann kein Netzwerk vorausgesetzt werden.

In welches Verzeichnis werden nun die Daten der Datenbank gespeichert, so dass alle Anwender Daten in die DB speichern können?


Gruß
Frank

MagicAndre1981 5. Mär 2007 10:54

Re: Richtiges AppData-Verzeichnis
 
All Users, da sollten alle drauf kommen.

Catbytes 5. Mär 2007 10:57

Re: Richtiges AppData-Verzeichnis
 
Zitat:

Zitat von MagicAndre1981
Zitat:

Zitat von Catbytes
Das ist aber genau das, was ich verhindern möchte. Einen Dienst zu installieren wird hier im Forum generell als "kritisch" betrachtet. Wie oft habe ich schon gelesen: "Was Dienst installieren - kommt mir nicht auf die Platte".

:shock: häh, was für ein Quatsch. Interaktive Dienste sind ein Risiko, aber normale Dienste nicht :gruebel:

Sorry - ich schreibe nicht jeden Tag Dienste :mrgreen: Hast Du mal ein Beispiel, was ein "Interaktiver" und was ein "Normaler" Dienst ist?

Zitat:

Zitat von SirThornberry
Hab ihr eignetlich gelesen was "Christian Seehase" geschrieben hatte? Es gibt einen ordner wo schreibzugriffen von allen möglich sind und genau das war doch gewünscht. Was spricht jetzt dagegen für diesen Fall dieses Verzeichnis zu verwenden?

Also das Verzeichnis "C:\Dokumente und Einstellungen\All Users\Dokumente" (das meinte er wohl) hat bei mir bei dem Benutzer "Jeder" nur Leserechte. Oder wurde ein anderes gemeint? Oder ein anderer Benutzer?

Zitat:

Zitat von MagicAndre1981
All Users, da sollten alle drauf kommen.

Wir drehen uns im Kreis :mrgreen:

MagicAndre1981 5. Mär 2007 11:09

Re: Richtiges AppData-Verzeichnis
 
Dann erstell doch ein Verzeichnis beim Setup und gibt jedem Nutzer dort Schreibrechte und gut.

Zu den Diensten, da hatte Luckie mal was geschrieben: http://www.michael-puff.de/Developer...Stations.shtml

Christian Seehase 5. Mär 2007 11:16

Re: Richtiges AppData-Verzeichnis
 
Moin Catbytes,

Zitat:

Zitat von Catbytes
Also das Verzeichnis "C:\Dokumente und Einstellungen\All Users\Dokumente" (das meinte er wohl) hat bei mir bei dem Benutzer "Jeder" nur Leserechte.

Ja, aber in den dort enthaltenen sind es mehr Rechte.

Da ein Setup i.d.R. höhere Rechte braucht spricht ja nichts dagegen, dort ein neues Verzeichnis anzulegen, und diesem, während des Setups, die notwendigen Rechte zu verpassen.

Catbytes 5. Mär 2007 11:23

Re: Richtiges AppData-Verzeichnis
 
Zitat:

Zitat von Christian Seehase
Zitat:

Zitat von Catbytes
Also das Verzeichnis "C:\Dokumente und Einstellungen\All Users\Dokumente" (das meinte er wohl) hat bei mir bei dem Benutzer "Jeder" nur Leserechte.

Ja, aber in den dort enthaltenen sind es mehr Rechte.

Stimmt! Das habe ich natürlich nicht geprüft :wall:

Zitat:

Zitat von Christian Seehase
Da ein Setup i.d.R. höhere Rechte braucht spricht ja nichts dagegen, dort ein neues Verzeichnis anzulegen, und diesem, während des Setups, die notwendigen Rechte zu verpassen.

Also: Wie du (und auch schon MagicAndre1981) gesagt haben, wäre dann das Verzeichnis "C:\Dokumente und Einstellungen\All Users\Dokumente" bzw. ein Unterverzeichnis das richtige. Per Setup werden die Rechte vergeben und gut ist.


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