Laden...

Welches Verzeichnis in Vista für Anwendungseinstellungen verwenden?

Erstellt von Snowwolf3000 vor 17 Jahren Letzter Beitrag vor 17 Jahren 5.763 Views
Snowwolf3000 Themenstarter:in
140 Beiträge seit 2004
vor 17 Jahren
Welches Verzeichnis in Vista für Anwendungseinstellungen verwenden?

Hallo,
wollt mal fragen welches Verzeichnis man für nicht benutzerspezifische Einstellungen unter Vista nimmt? Also Einstellungen die die ganze Anwendung betreffen, aber mit den angemeldeten Benutzer nichts zu tun haben. Ich würde ja einfach sgaen das man %ProgramData% hierfür nutzen kann, aber das Problem ist sobald man da als nicht-Admin versucht reinzuschreiben sich die Virtualisierung sofort einschaltet und die Einstellungen dann doch wieder nutzerspezifisch enden.

Gruß
Snowwolf

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo Snowwolf3000,

um die Pfade musst du dich gar nicht kümmern, wenn du [Tutorial] Das neue Konfigurationsmodell im .NET Framework 2.0 benutzt.

herbivore

D
386 Beiträge seit 2007
vor 17 Jahren

Environment.GetFolderPath()..
Du willst "CommonApplicationData" haben.

Pound for pound, plutonium is about as toxic as caffeine when eaten.

738 Beiträge seit 2007
vor 17 Jahren

oder vielleicht:

Application.UserAppDataPath;

???

Snowwolf3000 Themenstarter:in
140 Beiträge seit 2004
vor 17 Jahren

hi herbivore,
ist mir soweit bekannt. Löst aber mein Problem trotzdem nicht. Die user.config fällt schonmal raus , weil ich ja die Einstellungen anwendungsweit benötige. Bleibt nur noch die App.config und die liegt nunmal im Programmverzeichnis was ebenfalls gesperrt ist. Also hab ich immer noch kein Verzeichnis wo ich hinschreiben kann.

Gruß
Snowwolf

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo Snowwolf3000,

ehrt mich ja, dass du dich auf meine Antwort konzentrierst 🙂 aber die anderen beiden haben doch schon geschrieben, welche Verzeichnisse du verwenden kannst.

So gut kenne ich das Konfigurationsmodell leider nicht. Ich weiß also nicht, ob es auch mit diesen beiden Verzeichnissen umgehen kann. Wenn nicht, musst du eben doch "direkt" dort hin schreiben.

herbivore

Snowwolf3000 Themenstarter:in
140 Beiträge seit 2004
vor 17 Jahren

@herbivore
Klar Ehre wenn Ehre gebührt. 🙂 (sag niemanden das ich nur beim tippen der Anwort unterbrochen wurde und so die Antworten der Anderen nicht gesehen hab)

CommonApplicationData:
Führt zu %ProgramData%. Also genau das Verzeichnis wo ich nicht hinschreiben kann.

Application.UserAppDataPath:
Führt unter Vista zu "c:\users<Benutername\AppData\Roming<Meine Anwendung>". Also wieder zu benutzerspezifischen Einstellungen.

738 Beiträge seit 2007
vor 17 Jahren

hoppla, user-übergreifend!

Application.CommonAppDataPath;

Snowwolf3000 Themenstarter:in
140 Beiträge seit 2004
vor 17 Jahren

Es ist zum heulen. Eine halbe Million Variablen und alle führen zur selben Stelle.

CommonAppDataPath endet in
%Programdata%<meineAnwendung><meineAnwendung>\1.00\

Warum eigentlich zweimal der Anwendungsname? Egal.

1.274 Beiträge seit 2005
vor 17 Jahren

Isolated Storage, Golo hat mir bezüglicher dieser Frage den Tipp gegeben.

Denn Link hab ich auch gefunden : myCsharp

"Das Problem kennen ist wichtiger, als die Lösung zu finden, denn die genaue Darstellung des Problems führt automatisch zur richtigen Lösung." Albert Einstein

Snowwolf3000 Themenstarter:in
140 Beiträge seit 2004
vor 17 Jahren

So alles mal durchgelesen. So wie es aussieht läuft das trotzdem immer noch alles aufs gleiche drauf raus. Entweder hab ich Adminrechte dann kann ich in %ProgramData% schreiben oder ich hab keine und kann nur benutzerspezifische Einstellungen schreiben.
Das einzige Verzeichnis was ich jetzt gefunden hab, das wohl ohne Adminrechte von allen Benutzern beschrieben werden kann ist "C:\Users\Public" (Der Ordner für die gemeinsamen Bilder, Filme usw.). Aber irgendwie geht das doch an der Sache vorbei wenn ich mir da erst extra ein eigenes Verzeichnis anlegen muss. Kann ichs ja gleich "c:\meineEinstellungen" anlegen.

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo Snowwolf3000,

es sollte mit D:\Dokumente und Einstellungen*All Users*\Anwendungsdaten gehen und ich denke, dass es dafür auch eine Möglichkeit im Framework gibt, den Pfad abzufragen.

BTW: Hat eigentlich schon mal jemand versucht einen User "All Users" anzulegen? Oder geht das wegen des Leerzeichens nicht?

herbivore

Snowwolf3000 Themenstarter:in
140 Beiträge seit 2004
vor 17 Jahren

Es gibt leider kein "All Users" mehr in Vista sondern nur noch ein c:\users\public für gemeinsame Dokumente und ein c:\ProgramData (= %ProgramData% wie ich bisher immer geschrieben hab) auf gemeinsame Programmeinstellungen. Wobei der letzte ordner halt durch die doofe Virtualisierung von Vista geschützt wird, ich kann also keine Daten darin als Standardbenutzer ändern.

Um mal die Unterschiede XP/Vista ein wenig klarer zu machen:

XP: c:\Dokumente und Einstellungen\
Vista: c:\users

XP: c:\Dokumente und Einstellungen\All Users\Anwendungsdaten
Vista: c:\ProgramData

D
386 Beiträge seit 2007
vor 17 Jahren

Warum nimmst du nicht den IsolatedStorage? Der Link weiter oben ist doch wunderbar.. Oder ist auch da Vista mal wieder klueger als der User/Nutzer/Entwickler..?

Pound for pound, plutonium is about as toxic as caffeine when eaten.

Snowwolf3000 Themenstarter:in
140 Beiträge seit 2004
vor 17 Jahren

Ich möchte es ja eben nicht isoliert haben.

Also vielleicht hab ich ja nur was überlesen, aber so wie ich das sehe gibt es keinen Weg anwendungsweite Einstellungen zu ändern.

Der Designfehler ist doch aber eigentlich schon in .net 2.0 vorgezeichnet, wo es keinerlei Möglichkeit gibt die anwendungsbezogenen Einstellungen zu ändern. Der nötige Workaround über das öffnen der App.config als Xml Datei zeigt das ja schon.

D
386 Beiträge seit 2007
vor 17 Jahren

So wie ich das sehe, kannst du dort durchaus anwendungsuebergreifend Dateien ablegen/lesen. Vorausgesetzt du willst die Daten nicht zwischen Anwendungen teilen.

Was hat das jetzt bitte mit der app.config zu tun? Und die im Programm zu oeffnen und zu editieren finde ich etwas - uebel.

Pound for pound, plutonium is about as toxic as caffeine when eaten.

Snowwolf3000 Themenstarter:in
140 Beiträge seit 2004
vor 17 Jahren

Meinst du DarKlajid du könnest mir in zwei Sätzen erklären wie man anwendungsübergreifend Daten liest und schreibt? Also aus den hier genannten Links ist das meiner Meinung nach nämlich nicht zu entnehmen. Wie gesagt es geht hier um Vista, wo viele Verzeichnisse einfach gesperrt sind.

T
55 Beiträge seit 2005
vor 17 Jahren

Ich habe mich mit der Materie noch nicht alzu arg beschäftigt aber du muss glaub ein Manifest anlegen und angeben wie und wo du die config öffnen willst.

D
386 Beiträge seit 2007
vor 17 Jahren

Original von Snowwolf3000
Meinst du DarKlajid du könnest mir in zwei Sätzen erklären wie man anwendungsübergreifend Daten liest und schreibt? Also aus den hier genannten Links ist das meiner Meinung nach nämlich nicht zu entnehmen. Wie gesagt es geht hier um Vista, wo viele Verzeichnisse einfach gesperrt sind.

Wenn man dem Forumslink weiter oben folgt, kommt man auf die Seite http://www.dotnetdevs.com/articles/IsolatedStorage.aspx ..

Den Artikel hast du ignoriert oder nur unvollstaendig gelesen. Fuer den letztgenannten Fall: Ab der Ueberschrift "Sharing Data Files Between Assemblies - or not"..

Pound for pound, plutonium is about as toxic as caffeine when eaten.

Snowwolf3000 Themenstarter:in
140 Beiträge seit 2004
vor 17 Jahren

Danke DarKlajid. War letzteres. Hab übersehen das man als Quelle neben User eben auch Machine einstellen kann.