APPDATA schreibgeschützt? [gelöst]
APPDATA schreibgeschützt? [gelöst]
Gut ich gebe es zu. Ich kenne mich absolut nicht mit den Administrator-,
User-, Etc.-Rechten auf Windows aus und weiß auch nicht so recht was es
damit auf sich hat.
Jetzt war ich aber doch mal der Meinung Einstellungen, Daten usw richtig
abzuspeichern, sodass diese Dateien nicht direkt ins selbe Verzeichnis
kopiert werden, sondern eben in #CSIDL_APPDATA..
> C:\Dokumente und Einstellungen\XXX\Anwendungsdaten\
Nun dachte ich mir, dass ich einfach dort ein Verzeichnis mit dem
Firmennamen z.B. "Megasoft" und darin eines für den Programmnamen.
> C:\Dokumente und Einstellungen\XXX\Anwendungsdaten\Megasoft\MegaWindows
Das Problem hierbei ist, dass ich hier keine Dateien erstellen kann. So
finde ich dort zwar allerlei andere Ordner (auch PB) aber meine
Schreibversuche schlagen fehl...
Any ideas?
P.S.
Ich bin ganz normal eingeloggt wie man halt immer eingeloggt wird.
Mit Usernamen im Startmenu usw.
User-, Etc.-Rechten auf Windows aus und weiß auch nicht so recht was es
damit auf sich hat.
Jetzt war ich aber doch mal der Meinung Einstellungen, Daten usw richtig
abzuspeichern, sodass diese Dateien nicht direkt ins selbe Verzeichnis
kopiert werden, sondern eben in #CSIDL_APPDATA..
> C:\Dokumente und Einstellungen\XXX\Anwendungsdaten\
Nun dachte ich mir, dass ich einfach dort ein Verzeichnis mit dem
Firmennamen z.B. "Megasoft" und darin eines für den Programmnamen.
> C:\Dokumente und Einstellungen\XXX\Anwendungsdaten\Megasoft\MegaWindows
Das Problem hierbei ist, dass ich hier keine Dateien erstellen kann. So
finde ich dort zwar allerlei andere Ordner (auch PB) aber meine
Schreibversuche schlagen fehl...
Any ideas?
P.S.
Ich bin ganz normal eingeloggt wie man halt immer eingeloggt wird.
Mit Usernamen im Startmenu usw.
Zuletzt geändert von c4s am 16.12.2008 13:34, insgesamt 1-mal geändert.
"Menschenskinder, das Niveau dieses Forums singt schon wieder!" — GronkhLP ||| "ich hogffe ihr könnt den fehle endecken" — Marvin133 ||| "Ideoten gibts ..." — computerfreak ||| "Jup, danke. Gruss" — funkheld
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
Re: APPDATA schreibgeschützt?
Hab ich mich die Tage auch mit 'rumgeschlagenc4s hat geschrieben:Gut ich gebe es zu. Ich kenne mich absolut nicht mit den Administrator-, User-, Etc.-Rechten auf Windows aus und weiß auch nicht so recht was es damit auf sich hat.
........
Any ideas?

Meine Empfehlung: ersma 'n bischen lesen

Designed for Windows XP spec v2.3
und
WindowsVistaUACDevReqs.doc
Haben mir auf jeden Fall etwas weitergeholfen

hth...
scholly
Ich bin blutiger PB-Anfänger.
seit 17.12.08: PB 4.3 unter XP Home(SP3)
seit 17.12.08: PB 4.3 unter XP Home(SP3)
XP SP3Kaeru Gaman hat geschrieben:windows-version?
Kommt mir gerade echt komisch vor. Habe soeben tray0r schnell getestet
(da es auch dort abspeichert) und es funktioniert bestens.
Irgendwie scheint es mir gerade so als könnten alle Programme dort etwas
abspeichern außer meines, wobei ich ja auf den gleichen besagten Pfad
versuche zuzugreifen..
Edit:
Mir ist soeben aufgefallen, das ich zwar keine Ordner dort erstellen kann
(also z.B. nicht "Megasoft\MegaWindows\settings.ini") aber direkt ins
Verzeichnis zu kopieren funktioniert (also einfach nur "settings.ini" da rein).
Ist aber auch nicht so das Wahre.
Btw: Tray0r schreibt auch keinen Unterordner.
Muss man da als den Ordner registrieren? - das wird ja immer seltsamer.
Zuletzt geändert von c4s am 15.12.2008 23:44, insgesamt 1-mal geändert.
"Menschenskinder, das Niveau dieses Forums singt schon wieder!" — GronkhLP ||| "ich hogffe ihr könnt den fehle endecken" — Marvin133 ||| "Ideoten gibts ..." — computerfreak ||| "Jup, danke. Gruss" — funkheld
Also bei meinen selbstgeschriebenen PB-Programmen hat es bisher auch immer anstandslos funktioniert (Windows XP SP2 bzw. SP3). Vielleicht solltest Du mal Deinen betr. Code hier posten.
//edit: Unterordner erstellen sollte ebenfalls kein Problem im APPDATA-Verzeichnis sein -- übrigens auch ohne Administrator-Rechte. Denn das ist ja gerade der Sinn dieses Verzeichnisses, dass jeder Benutzer (auch mit eingeschränkten Rechten) dort seine eigenen Einstellungen speichern kann.
Gruß, Little John
//edit: Unterordner erstellen sollte ebenfalls kein Problem im APPDATA-Verzeichnis sein -- übrigens auch ohne Administrator-Rechte. Denn das ist ja gerade der Sinn dieses Verzeichnisses, dass jeder Benutzer (auch mit eingeschränkten Rechten) dort seine eigenen Einstellungen speichern kann.
Gruß, Little John
Code: Alles auswählen
Procedure.s GetSpecialFolderPath(CSIDL.l)
Protected LibraryID.l
Protected Path.s = Space(#MAX_PATH)
LibraryID = OpenLibrary(#PB_Any, "shell32.dll")
If LibraryID
CallFunction(LibraryID, "SHGetSpecialFolderPathA", 0, @Path, CSIDL, 0)
CloseLibrary(LibraryID)
EndIf
ProcedureReturn Path
EndProcedure
File.s = "testtesttest"
AppDataPath.s = GetSpecialFolderPath(#CSIDL_APPDATA) + "\"
RunProgram(AppDataPath)
Delay(2000)
FilePath.s = AppDataPath + File
If CreateFile(1, FilePath)
CloseFile(1)
;DeleteFile(FilePath)
MessageRequester("", FilePath + #CRLF$ + "Datei wurde erstellt!")
Else
MessageRequester("", FilePath + #CRLF$ + "Datei wurde nicht erstellt!")
EndIf
FilePath.s = AppDataPath + "Megasoft\MegaWindows\" + File
If CreateFile(1, FilePath)
CloseFile(1)
;DeleteDirectory(AppDataPath + "Megasoft\", "")
MessageRequester("", FilePath + #CRLF$ + "Datei und Ordner wurden erstellt!")
Else
MessageRequester("", FilePath + #CRLF$ + "Datei und Ordner wurden nicht erstellt!")
EndIf
erstellt und den Ordner nicht erstellen mag

"Menschenskinder, das Niveau dieses Forums singt schon wieder!" — GronkhLP ||| "ich hogffe ihr könnt den fehle endecken" — Marvin133 ||| "Ideoten gibts ..." — computerfreak ||| "Jup, danke. Gruss" — funkheld
Ach man, das ist im echt ..deprimierend - immer solche gaanz kleinenKiffi hat geschrieben:CreateDirectory()?c4s hat geschrieben:Also das wäre zumindest mal ein Test-Code, der eben nur die Datei
erstellt und den Ordner nicht erstellen mag
und zusätzlich beachten: CreateDirectory() erstellt keine Unterordner.
Grüße ... Kiffi
Fehlerchen


Ich hatte sogar CreateDirectory probiert. Aber leider mit Unterordner (fehlt
wohl ein Hinweis in der Hile-Datei).
Also muss ich nun immer umständlicherweise folgendes vorher machen:
> CreateDirectory(AppDataPath + "Megasoft")
> CreateDirectory(AppDataPath + "Megasoft\MegaWindows")
und dann erst
> CreateFile(1, AppDataPath + "Megasoft\MegaWindows" + File)
Naja auf jeden Fall danke

"Menschenskinder, das Niveau dieses Forums singt schon wieder!" — GronkhLP ||| "ich hogffe ihr könnt den fehle endecken" — Marvin133 ||| "Ideoten gibts ..." — computerfreak ||| "Jup, danke. Gruss" — funkheld
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
genaugenommen...c4s hat geschrieben:Ich hatte sogar CreateDirectory probiert. Aber leider mit Unterordner
(fehlt wohl ein Hinweis in der Hile-Datei).
1. in der Hilfe steht CreateDirectory(VerzeichnisName$), der Parameter heißt nicht Path$
2. das Kommando eine Direktory zu erzeugen erzeugt IMMER nur eine einzige.
egal auf welchem Rechner oder welchem OS.
also eigentlich müßte man diese Information als bekannt voraussetzen.
das bedeutet nicht, dass man keinen Hinweis in der Help hinzufügen könnte, aber er fehlt nicht.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
... oder Du verwendest die API-Variante (Window only):c4s hat geschrieben:Also muss ich nun immer umständlicherweise folgendes vorher machen: [...]
Code: Alles auswählen
MakeSureDirectoryPathExists_(path.s)
... oder (wenn es PB-nativ sein soll) lies mal diesen Thread:
http://www.purebasic.fr/german/viewtopi ... 651#152651
Grüße ... Kiffi
a²+b²=mc²