Seite 1 von 2

PB 4.20 Beta 4 (Windows) -> Your settings can't be saved!

Verfasst: 22.04.2008 08:28
von Little John
Hallo zusammen!

Mit PB 4.20 Beta 4 tritt unter Windows XP Pro ein Problem auf, das ich auf dem anderen PC mit PB 4.10 nicht habe. Zum Installieren von PB 4.20 Beta 4 hatte ich mich als Admin angemeldet. Jetzt im Alltag benutze ich ein anderes Konto, das eingeschränkte Rechte hat. Wenn ich dann PB 4.20 Beta 4 beende kommt folgende Fehlermeldung:
Your settings can't be saved!
The file 'C:\Dokumente und Einstellungen\Admin\Anwendungsdaten\PureBasic\PureBasic.prefs' cannot be created.
Warum versucht PB, die Einstellungen in dem Admin-Verzeichnis zu speichern? Ich bin ja in dem Moment nicht als Admin angemeldet. Habe ich da etwas falsch eingestellt, oder ist das ein Bug in der aktuellen Beta-Version?

Gruß, Little John

Verfasst: 22.04.2008 11:18
von Falko
Leider kann ich das mit Vista schlecht vergleichen bzw. nachvollziehen.

Ich denke aber, da du Purebasic unter dem Konto Admin installiert hast,
worin die Einstellungen dann dort auch gesichert werden, die Schreibrechte von
anderen Konten auf das Konto Admin verwehrt werden. Theoretisch müsstest
du für Purebasic eingeschränkten PB-Ordners im Adminstatus erst
die Schreibrechte für dein eingeschränktes Konto vergeben.

Gruß Falko

Verfasst: 22.04.2008 12:16
von Little John
Hallo Falko,

danke für Deine Antwort.
Falko hat geschrieben:Ich denke aber, da du Purebasic unter dem Konto Admin installiert hast, worin die Einstellungen dann dort auch gesichert werden, die Schreibrechte von anderen Konten auf das Konto Admin verwehrt werden.
Das sehe ich auch so. Von anderen Konten aus soll man ja auch gar nicht in die Verzeichnisse des Admin-Kontos schreiben. Aber warum versucht PureBasic es dann? Darin scheint mir das Problem zu liegen.

Wenn ich auf dem Konto "John" angemeldet bin, soll PureBasic doch logischerweise seine Einstellungen in
'C:\Dokumente und Einstellungen\John\Anwendungsdaten\PureBasic\PureBasic.prefs'
speichern. Warum will PureBasic in dieser Situation die Einstellungen unter einem fremden Konto speichern??

Gruß, Litte John

Verfasst: 22.04.2008 12:47
von Falko
So gesehen hast du mit dem Bug und ... Recht.
Es wird keine Anpassung der prefs und Registy für Purebasic unter Userkonten erstellt, die auf ein Adminkonto, installiertes PB zugreifen.
Könnte man als Bug bezeichnen.

Gruß Falko

Verfasst: 22.04.2008 14:48
von edel
PB laesst sich doch eh nur mit Adminrechten installieren, oder seh ich das falsch?
Zumindest unter Vista wird PB unter Admin installiert und dann mit einem
normalen Useraccount benutzt.

Verfasst: 22.04.2008 15:31
von Little John
edel hat geschrieben:PB laesst sich doch eh nur mit Adminrechten installieren, oder seh ich das falsch?
Zumindest unter Vista wird PB unter Admin installiert und dann mit einem
normalen Useraccount benutzt.
Ja, auch unter Windows XP habe ich PB unter Admin installiert. Und wenn ich es dann mit einem normalen Useraccount benutze, tritt das geschilderte Problem auf, dass PB eben die Einstellungen des betreffenden Users ins Admin-Verzeichnis schreiben will -- was natürlich nicht geht. Wo die Einstellungen gespeichert werden, hat ja von der "Benutzungslogik" her nichts damit zu tun, unter welchem Account das Programm installiert wurde. Richtig wäre, wenn PB die Einstellungen jedes Users in dessen Verzeichnis speichert. Das lässt sich auch leicht programmieren.

Ich denke, dass ich entweder irgendwo was Falsches eingestellt habe oder -- wenn es hierfür keine Einstellungsmöglichkeit gibt -- dass das ein Bug ist.

Gruß, Little John

Verfasst: 23.04.2008 02:16
von Falko
Ich glaube nicht das du irgendwo was falsches eingestellt hast. Ein Userzugriff auf den Adminordner ist ohne Freigabe nicht möglich.
Ich habe z.B. bei mir unter Konto Falko PB installiert. Die Prefs sind dann
folglich hier:

C:\Users\Falko\AppData\Roaming\PureBasic

Bei einer Installation unter Admin müsste der Ordner unter:

C:\Users\Administrator\AppData\Roaming\PureBasic

vorhanden sein, worauf dann aber der User keine Schreibrechte hat.

Normal müsste die PB-IDE erkennen, in welchen Mode gestartet wurde und somit dann eine Kopie der Prefs in den Ordner z.B. C:\Users\John\AppData\Roaming\PureBasic hineinkopieren. Nur das scheint wohl nicht richtig zu sein.

Eine Einstellung des Path zu den Prefs aus der IDE heraus ist nicht möglich. Evtl. könnte eine Neuinstallation im Usermodus in das bekannte
PB-Verzeichnis hinein helfen. Somit würden die Prefs dann auch unter John funktionieren. Der Nachteil, man hat dann evtl. zwei verschiedene
Verzeichnisse mit prefs (Admin als auch User).

Normal kenne ich bei vielen Installationsroutinen die Abfrage, ob man sein
Programm nur für den Admin, bzw. Benutzer oder für alle Benutzer zugänglich machen will, worauf dann z.B. diese Einstellungsdateien jeweils
hinkopiert würden. Damit meine ich:
Für Admin : so wie du es jetzt hast.
Für Benutzer: so wie ich es habe
und für alle: wäre dann noch "C:\Users\Default\AppData\Roaming" möglich.


Gruß Falko

Verfasst: 24.04.2008 13:47
von Little John
Hallo Falko,

ich bin ganz Deiner Meinung.

Gerade habe ich übrigens in der Hilfe von PB 4.10 folgendes gefunden (Der gleiche Text steht auf Englisch auch in der Hilfe von PB 4.20 Beta 4):
Seit PureBasic 4.10 werden die Einstellungen der IDE nicht mehr im PureBasic Verzeichnis gespeichert, stattdessen im %APPDATA%\PureBasic Verzeichnis.
Das Verhalten von PB 4.20 Beta 4 stimmt also nicht mit der Dokumentation überein, denn das %APPDATA%-Verzeichnis des Benutzers John ist eben
C:\Dokumente und Einstellungen\John\Anwendungsdaten\
Daher ist der (zum Glück erfolglose) Versuch von PB, in ein fremdes Verzeichnis zu schreiben m.E. klar ein Bug. Schade, dass noch niemand vom PureBasic-Team hier geantwortet hat. Ich denke ich werde noch eine Nachricht ins englische Forum schreiben.

Gruß, Little John

Verfasst: 24.04.2008 15:43
von Little John
Ich habe jetzt festgestellt, dass das Problem nur auftritt wenn ich PB durch einen Doppelklick auf eine .pb-Datei starte. Wenn ich dagegen PB über die Verknüpfung im Startmenü starte, läuft alles wie erwartet.
Ich vermute, das Problem hängt mit folgendem Eintrag zusammen, den ich in der Registy gefunden habe:
[HKEY_CLASSES_ROOT\Applications\PureBasic.exe\shell\open\command]
@="\"C:\\Programme\\PureBasic\\PureBasic.exe\" \"%1\"
/P \"C:\\Dokumente und Einstellungen\\Admin\\Anwendungsdaten\\PureBasic\\PureBasic.prefs\"
/T \"C:\\Dokumente und Einstellungen\\Admin\\Anwendungsdaten\\PureBasic\\Templates.prefs\"
/A \"C:\\Dokumente und Einstellungen\\Admin\\Anwendungsdaten\\PureBasic\\Tools.prefs\""
Ich denke, dort sollte eben nicht Admin stehen, sondern %APPDATA%. Beziehungsweise eigentlich könnte man doch die ganzen Schalter (die letzten 3 Zeilen) an dieser Stelle überhaupt weglassen, wenn %APPDATA% eh die Vorweinstellung ist, oder? Also anscheinend ist es ein Bug im Installationsprogramm.

Gruß, Little John

Verfasst: 25.04.2008 01:46
von Falko
Das mit der %APPDATA% - Environmentvariable ist schon korrekt.
Wenn PB installiert wird, und dazu noch als angemeldeter Admin, wird der PB-Pfad dort auch hin kopiert. Somit haben Userprofile wie John, Falko etc.
keine Schreibrechte darauf. Umgekehrt schon.
Würde man z.B. das %APPDATA% auch noch in der Registry geschrieben werden, würde unter dem angemeldeten Admin PB korrekt gestartet als auch
gefunden werden, aber nicht im Userzugriff unter John, da dort so ein Verzeichnis nicht existiert.

Was eigentlich fehlt sind die Schreibrechte, die bestimmte User auf dieses Verzeichnis haben oder nicht haben dürfen.

Die Auswahl mit der Enviromentvariable %ALLUSERPROFILE% wäre dann die einfachere Methode, wo dann aber jeder diese Einstellungen ändern kann.

Eigentlich müsste freak zum PB-Editor was sagen können.

Was eigentlich nur fehlt ist die Frage vor der Installation, ob man nur für den bestimmten User %APPDATA% oder für alle User %ALLUSERPROFILE% das Purebasic installieren möchte.

Wenn das unter Admin installiert wurde muss auch der Admin die Freigabe
vergeben und nicht das Programm.

Aber am einfachsten ist es, PB ganz normal als User zu installieren. Somit hat man als Admin als auch betreffender User Zugriff auf PB.

Gruß Falko