Seite 1 von 4
Preference kann nicht geöffnet werden
Verfasst: 23.12.2009 18:35
von Mok
Hallo

Momentan ha ich ein ziemliches Brett vor'm Kopf: Ich überlege schon sein einer halben Stunde was da so
hunzt. Nun bin ich draufgekommen, dass ich die Config.prefs nimmer öffnen kann. Waru das weiß ich nicht
Code: Alles auswählen
;Inhalt der Config.prefs
[infSettings]
infSettings = 1000
UnitData = 1.000000
UnitName = MB
[other]
StickyWindow = 1
Code: Alles auswählen
;Aufruf im Programm
If Not OpenPreferences("Config.prefs")
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Else
PreferenceGroup("infSettings")
Unit.f = ReadPreferenceFloat("UnitData",1)
UnitName = ReadPreferenceString("UnitName","MB")
refTime = ReadPreferenceLong("RefreshTime",500)
PreferenceGroup("other")
StickyWin = ReadPreferenceLong("StickyWindow",1)
EndIf
Das markierte ist übrigens der "Zweig", wo der Compiler "reingeht"
Ich habe schon alles ausprobiert, Rechte, Namen, Inhalt, einfach alles stimmt...
fast
MfG, Mok
Re: Preference kann nicht geöffnet werden
Verfasst: 23.12.2009 18:51
von ts-soft
Wo befindet sich den die Config.prefs? Normallerweise sollte Sie doch in einem Unterordner von
APPDATA sein, also ist doch wohl ein Pfad erforderlich.
PS: Garkeinen Pfad setzen bedeutet nicht zwangsläufig, das der Pfad der Exe genutzt wird!
Re: Preference kann nicht geöffnet werden
Verfasst: 23.12.2009 19:00
von Mok
ts-soft hat geschrieben:PS: Garkeinen Pfad setzen bedeutet nicht zwangsläufig, das der Pfad der Exe genutzt wird!
Da ist die Datei auch...
Re: Preference kann nicht geöffnet werden
Verfasst: 23.12.2009 19:05
von ts-soft
Aber mit der Prefs im Programmordner wirds bei vielen nicht funktionieren!
Re: Preference kann nicht geöffnet werden
Verfasst: 23.12.2009 19:07
von Mok
ts-soft hat geschrieben:
Aber mit der Prefs im Programmordner wirds bei vielen nicht funktionieren!
Damit geht alles bestens...
Das ist aber irgendwie bescheuert

Re: Preference kann nicht geöffnet werden
Verfasst: 23.12.2009 19:13
von ts-soft
Mok hat geschrieben:
Damit geht alles bestens...
Das ist aber irgendwie bescheuert

Wenn Du den aktuellen Pfad nicht setzen willlst, mußte Dich auf andere verlassen, schlechter Stil!
1. Programm durch doppelklick im Explorer starten, dieser setzt dann den Pfad autom.
2. Verknüpfung erstellen, wo auch "Ausführen in ..." ausgefüllt wurde.
3. In RunProgram den dritten Parameter mit angeben.
usw.
Also lieber bescheuert sein
Noch besser, gleich nach APPDATA\MOK\Mein tooles Program\ speichern.
Re: Preference kann nicht geöffnet werden
Verfasst: 23.12.2009 19:23
von Mok
ts-soft hat geschrieben:Noch besser, gleich nach APPDATA\MOK\Mein tooles Program\ speichern.
Also doch nicht bescheuert sein...
Re: Preference kann nicht geöffnet werden
Verfasst: 28.12.2009 21:49
von Mok
Nach dem Erstellen der EXE funzt das ganze Programm auch ohne SetCurrentDirectory()...
...NICHT! Aber es hapert nicht an der PREFS, sondern am Shortcut, der weder mit noch ohne SetCurrentDirectory() funzt.
Re: Preference kann nicht geöffnet werden
Verfasst: 28.12.2009 22:05
von al90
@Mok
Nim das hier und Du bist alle sorgen los.
Code: Alles auswählen
Procedure.s GetAndCreateConfigPath(FullPath$)
Protected PrefsPath$
If Right(FullPath$, 1)<>"\" : FullPath$+"\" : EndIf
PrefsPath$ = FullPath$
If OSVersion() => #PB_OS_Windows_Vista
PrefsPath$ = GetEnvironmentVariable("APPDATA") + "\" + StringField(FullPath$, CountString(FullPath$,"\"), "\") + "\"
EndIf
If MakeSureDirectoryPathExists_(@PrefsPath$) = #True
ProcedureReturn PrefsPath$
EndIf
EndProcedure
MyConfigPath$ = GetAndCreateConfigPath(GetPathPart(ProgramFilename())+"PureTEST_ConfigFolder\")
Debug MyConfigPath$ ; <--- Gibt ("") zurück bei Fehlschlag!
Re: Preference kann nicht geöffnet werden
Verfasst: 28.12.2009 22:44
von ts-soft
al90 hat geschrieben:Nim das hier und Du bist alle sorgen los.
Einspruch:
1. Unter WindowsXP und Windows 2000 als eingeschränkter User, was normal
sein sollte (aber nicht ist), gilt dasselbe wie unter Vista und höher (Win9x
in einer MU Umgebung kann ich leider nicht mehr testen

), also ist
die Unterscheidung schon mal falsch.
2. MakeSureDirectoryPathExists funktioniert nur in einer ASCII Anwendung sowie
unter benutzerdefinierten Win9x Installationen ist es evtl. garnicht verfügbar
(was aber selten und somit vernachlässigbar ist).
Also MakeSureDirectoryPathExists mit Prototypes selber importieren!
Gruß
Thomas