Preference kann nicht geöffnet werden

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Mok
BotHunter
Beiträge: 1484
Registriert: 26.12.2005 14:14
Computerausstattung: MSI GX780R
Intel Core i5-2410M
Nvidia GT 555M
Windows 7 Home Premium 64 bit
Wohnort:   

Preference kann nicht geöffnet werden

Beitrag 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
Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Preference kann nicht geöffnet werden

Beitrag 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!
Benutzeravatar
Mok
BotHunter
Beiträge: 1484
Registriert: 26.12.2005 14:14
Computerausstattung: MSI GX780R
Intel Core i5-2410M
Nvidia GT 555M
Windows 7 Home Premium 64 bit
Wohnort:   

Re: Preference kann nicht geöffnet werden

Beitrag 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...
Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Preference kann nicht geöffnet werden

Beitrag von ts-soft »

Code: Alles auswählen

SetCurrentDirectory(GetPathPart(ProgramFilename()))
Aber mit der Prefs im Programmordner wirds bei vielen nicht funktionieren!
Benutzeravatar
Mok
BotHunter
Beiträge: 1484
Registriert: 26.12.2005 14:14
Computerausstattung: MSI GX780R
Intel Core i5-2410M
Nvidia GT 555M
Windows 7 Home Premium 64 bit
Wohnort:   

Re: Preference kann nicht geöffnet werden

Beitrag von Mok »

ts-soft hat geschrieben:

Code: Alles auswählen

SetCurrentDirectory(GetPathPart(ProgramFilename()))
Aber mit der Prefs im Programmordner wirds bei vielen nicht funktionieren!
Damit geht alles bestens...
Das ist aber irgendwie bescheuert /:->
Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Preference kann nicht geöffnet werden

Beitrag 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 :mrgreen:
Noch besser, gleich nach APPDATA\MOK\Mein tooles Program\ speichern.
Benutzeravatar
Mok
BotHunter
Beiträge: 1484
Registriert: 26.12.2005 14:14
Computerausstattung: MSI GX780R
Intel Core i5-2410M
Nvidia GT 555M
Windows 7 Home Premium 64 bit
Wohnort:   

Re: Preference kann nicht geöffnet werden

Beitrag von Mok »

ts-soft hat geschrieben:Noch besser, gleich nach APPDATA\MOK\Mein tooles Program\ speichern.
Also doch nicht bescheuert sein...
Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
Benutzeravatar
Mok
BotHunter
Beiträge: 1484
Registriert: 26.12.2005 14:14
Computerausstattung: MSI GX780R
Intel Core i5-2410M
Nvidia GT 555M
Windows 7 Home Premium 64 bit
Wohnort:   

Re: Preference kann nicht geöffnet werden

Beitrag 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.
Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
Benutzeravatar
al90
Beiträge: 1103
Registriert: 06.01.2005 23:15
Kontaktdaten:

Re: Preference kann nicht geöffnet werden

Beitrag von al90 »

@Mok

Nim das hier und Du bist alle sorgen los. :wink:

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!
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Preference kann nicht geöffnet werden

Beitrag von ts-soft »

al90 hat geschrieben:Nim das hier und Du bist alle sorgen los. :wink:
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 :mrgreen: ), 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
Antworten