Autor Beitrag
lord2k3
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Do 31.03.16 18:04 
Hallo,

meine Anwendung schreibt eine Datei, derzeit im CommonApplicationData Pfad.
Unter Windows 7 ist auch noch alles schick, allerdings meldet mir Windows 10 eine Zugriffs Exception - wenn ich mein Programm mit Administratoren Rechten starte klappts.

Habe unter msdn.microsoft.com/d...r%28v=vs.110%29.aspx geschaut und dachte der CommonApplicationData wäre genau der richtige Ordner dafür.
Beschreibung: "Das Verzeichnis, das als allgemeines Repository für programmspezifische Daten verwendet wird, die von allen Benutzern verwendet werden."

Sind Administratoren Rechte unter Windows 10 zum Dateien schreiben nun pflicht?
%Temp% würde auch ausreichen, aber das ist doch nicht die Lösung?!

Gruß,


Edit:
Mit "LocalApplicationData" funktioniert es auch unter Windows 10 ohne Admin Rechten
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4449
Erhaltene Danke: 917


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Do 31.03.16 19:04 
CommonApplicationData ist ein geteilter Ordner für alle User (normalerweise C:\ProgramData). Dachte allerdings das da erstmal jeder dran darf :gruebel: Oder hast du versucht mit verschiedenen Usern die gleiche Datei zu ändern weil CommonApplicationData ja geteilt wird? Das geht tatsächlich nicht den sie ~gehört~ ja potentiell jemand anderem.

LocalApplicationData ist ein userspezifischer Ordner auf dem darf dieser User lesen und schreiben (normalerweise C:\Users\USERNAME\AppData\Local) und da sich so die verschiednene USer aus dem Weg gehen gibt es da dann auch keine Probleme in der Richtung.
lord2k3 Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Do 31.03.16 22:57 
user profile iconRalf Jansen hat folgendes geschrieben Zum zitierten Posting springen:
CommonApplicationData ist ein geteilter Ordner für alle User (normalerweise C:\ProgramData). Dachte allerdings das da erstmal jeder dran darf :gruebel: Oder hast du versucht mit verschiedenen Usern die gleiche Datei zu ändern weil CommonApplicationData ja geteilt wird? Das geht tatsächlich nicht den sie ~gehört~ ja potentiell jemand anderem.


Ja das dachte ich auch, unter Windows 7 sieht es auch gut aus, nur Windows 10 "meckert" und es ist nur der eine Benutzer aktiv (bzw. die Anwendung nur einmal geöffnet) ist meine Testumgebung in einer VM.
Sobald ich die Anwendung als Administrator öffne schreibt er unter Win 10 auch fleißig :)


Ich denke, dass die Lösung mit dem User Pfad auch etwas eleganter ist (in meiner Situation)
jfheins
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 874
Erhaltene Danke: 148

Win7
VS 2013, VS2015
BeitragVerfasst: Fr 01.04.16 00:25 
Dein Unterordner in ProgramData ist standardmäßig schreibgeschützt - und das ist Absicht.
Wenn gewisse Unterordner schreibbar sein sollen, muss das dein Setup (das ja mit Adminrechten ausgeführt wird) explizit setzen.

Siehe z.B. stackoverflow.com/a/8457033