AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Windows 8.1 X64 Programmdata Schreibschutz

Windows 8.1 X64 Programmdata Schreibschutz

Ein Thema von hanspeter · begonnen am 16. Mai 2014 · letzter Beitrag vom 17. Mai 2014
Antwort Antwort
Seite 1 von 2  1 2   
hanspeter

Registriert seit: 26. Jul 2003
Ort: Leipzig
1.350 Beiträge
 
Delphi XE2 Professional
 
#1

Windows 8.1 X64 Programmdata Schreibschutz

  Alt 16. Mai 2014, 22:11
Hallo,
irgendwie habe ich einen eigenartigen Effekt.

Ich besorge mir den Datenpfad für das Programm mit
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

Geändert von hanspeter (16. Mai 2014 um 22:29 Uhr)
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#2

AW: Windows 8.1 X64 Programmdata Schreibschutz

  Alt 16. Mai 2014, 22:44
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.
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.637 Beiträge
 
Delphi 5 Professional
 
#3

AW: Windows 8.1 X64 Programmdata Schreibschutz

  Alt 16. Mai 2014, 23:02
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
  Mit Zitat antworten Zitat
hanspeter

Registriert seit: 26. Jul 2003
Ort: Leipzig
1.350 Beiträge
 
Delphi XE2 Professional
 
#4

AW: Windows 8.1 X64 Programmdata Schreibschutz

  Alt 16. Mai 2014, 23:08
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
  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
 
#5

AW: Windows 8.1 X64 Programmdata Schreibschutz

  Alt 16. Mai 2014, 23:18
Nein, die benötigten Schreibrechte für den Ordner setzt du bei der Installation
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
Popov
(Gast)

n/a Beiträge
 
#6

AW: Windows 8.1 X64 Programmdata Schreibschutz

  Alt 16. Mai 2014, 23:57
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.
  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: Windows 8.1 X64 Programmdata Schreibschutz

  Alt 17. Mai 2014, 00:44
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
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)

Geändert von Sir Rufo (17. Mai 2014 um 00:57 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
8.495 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: Windows 8.1 X64 Programmdata Schreibschutz

  Alt 17. Mai 2014, 01:28
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...
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#9

AW: Windows 8.1 X64 Programmdata Schreibschutz

  Alt 17. Mai 2014, 02:17
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.
  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: Windows 8.1 X64 Programmdata Schreibschutz

  Alt 17. Mai 2014, 02:40
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.
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   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 05:28 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf