Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Windows 8.1 X64 Programmdata Schreibschutz (https://www.delphipraxis.net/180392-windows-8-1-x64-programmdata-schreibschutz.html)

hanspeter 16. Mai 2014 21:11


Windows 8.1 X64 Programmdata Schreibschutz
 
Hallo,
irgendwie habe ich einen eigenartigen Effekt.

Ich besorge mir den Datenpfad für das Programm mit
Delphi-Quellcode:
Pfad := IncludeTrailingPathDelimiter(GetShellFolder(CSIDL_COMMON_APPDATA)) + 'Daten\' + ApplicationName +'\';

Wenn ich in den Ordner schreiben möchte, ist dieser schreibgeschützt.
Den Schreibschutz kann ich im Explorer nicht zurücksetzen.

Hat wer eine Ideee, was da passiert sein könnte oder wie ich in das Verzeichnis wieder schreiben kann?

Gruß
Peter

Popov 16. Mai 2014 21:44

AW: Windows 8.1 X64 Programmdata Schreibschutz
 
Also warum du nicht in den Ordner schreiben kannst, kann ich auf die Schnelle nicht erkennen. Evtl. ist der Pfad verkehrt. Prüfe ob er wirklich korrekt ist.

Was den Schreibschutz (Attribut) von den Ordner angeht, so ist das keiner. Das ist kein Schreibschutz. Das war vielleicht mal einer, ist aber schon lange keiner mehr. Inzwischen hat das Schreibschutz Attribut (aber nur bei Ordnern) eine andere Aufgaben (bei Daten ist es aber immer noch Schreibschutz). Du kannst also die ganze Nacht klicken, ohne da etwas zu bewirken.

Sei also beruhigt, es ist nicht mit Schreibschutz Attribut versehen.

Dalai 16. Mai 2014 22:02

AW: Windows 8.1 X64 Programmdata Schreibschutz
 
Offenbar fehlen Zugriffsrechte. Kann es sein, dass du das Programm als Nutzer ausführst? Dann hast du sehr wahrscheinlich keine Schreibrechte auf das Verzeichnis (analog zu %ProgramFiles% haben dort nur Administratoren Schreibrechte). Hast du denn dafür gesorgt, dass die Rechte auf das Verzeichnis nach deinen Vorstellungen geändert werden?

MfG Dalai

hanspeter 16. Mai 2014 22:08

AW: Windows 8.1 X64 Programmdata Schreibschutz
 
Beim Versuch z.B. die Inifile zurückzuschreiben kommte die Fehlermeldung
"In c:\Programdata\... kann nicht geschrieben werden.

Öffne ich eine vorhandene Datei mit dem Texteditor und möchte diese zurückspeichern, dann kommt die Fehlermeldung "Zugriff verweiget"
Ich meine das in Programdata eigentlich immer Schreibrechte vorhanden sein sollten?

Gruß Peter

Sir Rufo 16. Mai 2014 22:18

AW: Windows 8.1 X64 Programmdata Schreibschutz
 
Nein, die benötigten Schreibrechte für den Ordner setzt du bei der Installation

Popov 16. Mai 2014 22:57

AW: Windows 8.1 X64 Programmdata Schreibschutz
 
Wie ich schon sagte, das Schreibschutz-Attribut ist es nicht.

Der andere Schreibschutz, über Zugriffsrechte, ist eine andere Sache. In der Regel ist aber bei AppData, bzw. Anwendungsdaten-Ordner der Schreibvorgang möglich. Zumindest wenn es sich um den Anwendungsdaten-Ordner das Users handelt.

CSIDL_COMMON_APPDATA ist aber der Anwendungsdaten-Ordner von All-Users, und hie rhat man nicht automatisch Schreibrechte. In der Regel hat man sie eher nicht. Ich hab zwar noch nie bewußt bei der Installation über Rechte entschieden, kann aber stimmen.

Wähle die Datei einfach aus, klicke sie mit der rechten Maustaste an, im Kontextmenü wähle Eigenschaften, im Dialogfenster wähle Register "Sicherheit" und prüfe dort ob Benutzer/Gruppe: "Benutzer", evtl. "Ersteller-Besitzer", "Jeder" oder User "Dein Benutzername" die entsprechenden Rechte haben, bzw. ob man sie ändern kann.

Sir Rufo 16. Mai 2014 23:44

AW: Windows 8.1 X64 Programmdata Schreibschutz
 
Zitat:

Zitat von Popov (Beitrag 1259112)
CSIDL_COMMON_APPDATA ist aber der Anwendungsdaten-Ordner von All-Users, und hie rhat man nicht automatisch Schreibrechte. In der Regel hat man sie eher nicht. Ich hab zwar noch nie bewußt bei der Installation über Rechte entschieden, kann aber stimmen.

Ich vermute du sprichst von der Windows-Installation ...

Ich spreche von der Installation der Anwendung, da legt man die Ordner an und stellt auch die erforderlichen Rechte ein. Ist bei den Setup-Generatoren einfach mit ein paar Klicks eingestellt ;)
InnoSetup / [Dirs] section / Permissions

BTW: Es empfiehlt sich den Ordner nach folgender Vorgabe "{CSIDL_COMMON_APPDATA}\<Organization-Name>\<Application-Name>" zu benennen, und ab dort die weiteren anwendungsspezifischen Ordner anzulegen.

"{CSIDL_COMMON_APPDATA}\Daten\<Application-Name>" ist da irgendwie nicht so schön

jaenicke 17. Mai 2014 00:28

AW: Windows 8.1 X64 Programmdata Schreibschutz
 
Ist es denn überhaupt Absicht, dass du diese Daten für alle Benutzer ablegen willst? Normalerweise braucht das ein Programm gar nicht, normalerweise ist der Ordner CSIDL_LOCAL_APPDATA viel sinnvoller. In dem hat man Schreibrechte und dieser ist nur für den aktuellen lokalen Benutzer, man stört also andere Benutzer auf dem PC auch nicht...

Popov 17. Mai 2014 01:17

AW: Windows 8.1 X64 Programmdata Schreibschutz
 
Zitat:

Zitat von Sir Rufo (Beitrag 1259113)
Ich vermute du sprichst von der Windows-Installation ...

Jajn. Eigentlich dachte ich, dass du die Installation eines Programms aus dem Standpunkt eines Nutzers/Anwenders meinst, d. h. ich als Nutzer installiere Irfanview, kann aber nicht entscheiden ob ich bestimmte Rechte haben werde.

Du dagegen meintest wohl die Installationsrountine die der Programmierer erstellt. Hier kann er einstellen ob der Nutzer die Rechte haben wird.

Sir Rufo 17. Mai 2014 01:40

AW: Windows 8.1 X64 Programmdata Schreibschutz
 
Wäre doch aber auch sinnlos den Nutzer entscheiden zu lassen welche Rechte wie wo sein müssen, denn jede Entscheidung abweichend vom Standard würde bedeuten, die Installation abzubrechen, weil das Programm sonst nicht laufen wird.

Man lässt den Nutzer ja auch nicht entscheiden, welche Dateien kopiert werden sollen.

Der wählt evtl. eine Funktion aus und die impliziert dann welche Dateien kopiert, welche Ordner benötigt und welche Rechte dort sein müssen damit die Anwendung funktioniert.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:24 Uhr.
Seite 1 von 2  1 2      

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