Seite 2 von 3
Re: Ordner für Programsettings?
Verfasst: 01.04.2010 20:22
von ts-soft
Little John hat geschrieben:ts-soft hat geschrieben:aber für nur Windows lieber den MS-Standard verwenden.
Wieso das? Funktioniert GetHomeDirectory() unter Windows manchmal nicht korrekt?
Gruß, Little John
Ist ja nicht dasselbe wie APPDATA!
@al90
Ich weiß nicht, ab welcher Windows Version die Environmentvariable zur Verfügung steht.
Und MakeSureDirectoryPathExists_() gibts auf älteren Versionen nur Optional.
Desweiteren unterstützt das kein Unicode und sollte für aktuelle Projekte nutzlos sein.
Re: Ordner für Programsettings?
Verfasst: 01.04.2010 20:39
von al90
ts-soft hat geschrieben:@al90
Ich weiß nicht, ab welcher Windows Version die Environmentvariable zur Verfügung steht.
Und MakeSureDirectoryPathExists_() gibts auf älteren Versionen nur Optional.
Desweiteren unterstützt das kein Unicode und sollte für aktuelle Projekte nutzlos sein.
Habs unter
XP/Vista/7 getestet und läuft problemlos. Unter =<98 kann ich jetzt aber auch
nicht sagen obs geht, da ich es nicht mehr testen kann. Was die API betrifft, kann man
sich ja auch selbst was "Stricken". z.b. so:
Code: Alles auswählen
Procedure.l MakeDirectoryGroup(Dir$)
If Right(Dir$,1)<>"\" : Dir$+"\" : EndIf
If Mid(Dir$,2,2)=":\" And FileSize(Dir$)=-1
c$=Left(Dir$,3)
For i=4 To Len(Dir$)
b$=Mid(Dir$,i,1)
If b$<>"\"
c$+b$
Else
c$+b$
CreateDirectory(c$)
EndIf
Next
EndIf
x=FileSize(Dir$)
ProcedureReturn x
EndProcedure
Re: Ordner für Programsettings?
Verfasst: 01.04.2010 20:41
von rolaf
Also machen wir es so:
Code: Alles auswählen
Procedure.s DatenPfad(Firma.s, Programm.s)
Protected DatenPfad.s
DatenPfad = GetHomeDirectory()
If Right(DatenPfad, 1) <> "\"
DatenPfad + "\"
EndIf
DatenPfad + "Anwendungsdaten\"
If FileSize(DatenPfad) <> - 2
CreateDirectory(DatenPfad)
EndIf
DatenPfad + Firma + "\"
If FileSize(DatenPfad) <> - 2
CreateDirectory(DatenPfad)
EndIf
DatenPfad + Programm + "\"
If FileSize(DatenPfad) <> - 2
CreateDirectory(DatenPfad)
EndIf
ProcedureReturn DatenPfad
EndProcedure
Debug DatenPfad("DrFalos", "Spitzenprogramm")
Re: Ordner für Programsettings?
Verfasst: 01.04.2010 20:45
von Little John
al90 hat geschrieben:Unter XP oder kleiner wird dann halt "C:\Programme\" benutzt, (Was i.d.R. auch klappen sollte)
Auch unter Windows XP sollte man besser %APPDATA% verwenden.
ts-soft hat geschrieben:Little John hat geschrieben:ts-soft hat geschrieben:aber für nur Windows lieber den MS-Standard verwenden.
Wieso das? Funktioniert GetHomeDirectory() unter Windows manchmal nicht korrekt?
Gruß, Little John
Ist ja nicht dasselbe wie APPDATA!
Ach so, ja stimmt. Jetzt hast Du mich ganz durcheinandergebracht.

Da GetHomeDirectory() nicht dasselbe ist wie %APPDATA%, würde ich es auch nicht für Cross-Plattform-Programme nehmen, um das Verzeichnis für Dateien mit Einstellungen zu bestimmen.
Gruß, Little John
Re: Ordner für Programsettings?
Verfasst: 01.04.2010 20:47
von NicTheQuick
Das Problem wird weiterhin sein, dass das nur für deutsche Windowssysteme geht.
Zum Glück muss ich mich hier mit sowas nicht rumkloppen.

Re: Ordner für Programsettings?
Verfasst: 01.04.2010 20:50
von rolaf
NicTheQuick hat geschrieben:Das Problem wird weiterhin sein, dass das nur für deutsche Windowssysteme geht.
Zum Glück muss ich mich hier mit sowas nicht rumkloppen.

Nö wieso, in anderssprachigen Windosen wird einfach der Ordner "Anwendungsdaten" im HomeDirectory erstellt - was ja nicht verboten ist.

Re: Ordner für Programsettings?
Verfasst: 01.04.2010 21:05
von al90
Little John hat geschrieben:al90 hat geschrieben:Unter XP oder kleiner wird dann halt "C:\Programme\" benutzt, (Was i.d.R. auch klappen sollte)
Auch unter Windows XP sollte man besser %APPDATA% verwenden.
Hast recht. Gerade mal XP angeworfen. %APPDATA% geht da auch. Dann kann man also bedenkenlos
If OSVersion()=>#PB_OS_Windows_Vista
durch
If OSVersion()=>#PB_OS_Windows_XP
ersetzen.

Re: Ordner für Programsettings?
Verfasst: 01.04.2010 21:05
von ts-soft
Little John hat geschrieben:
Ach so, ja stimmt. Jetzt hast Du mich ganz durcheinandergebracht.

Da GetHomeDirectory() nicht dasselbe ist wie %APPDATA%, würde ich es auch nicht für Cross-Plattform-Programme nehmen, um das Verzeichnis für Dateien mit Einstellungen zu bestimmen.
Gruß, Little John
Das machen ein paar andere Programme (meist MultiOS) auch, ich sehe da kein Problem,
Problematisch finde ich es eher, wenn jemand "Anwendungsdaten" da anhängt, weil so heißt der
Ordner nur auf dt. Systemen WinXP und kleiner. Vista und Co zeigen zwar Anwendungdaten an,
aber nur virtuell, der Ordner ist "AppData\Roaming".
Auch wenn heute der 1.04. ist, sind bisher nur meine beiden Lösungen akzeptabel, jedenfalls
für mich
Alles andere ist eher unprofessionelles gewurschtel

Re: Ordner für Programsettings?
Verfasst: 01.04.2010 21:15
von al90
ts-soft hat geschrieben:
Auch wenn heute der 1.04. ist, sind bisher nur meine beiden Lösungen akzeptabel, jedenfalls
für mich
Alles andere ist eher unprofessionelles gewurschtel

Ich verlasse mich da lieber auf Praktische Tests. Und wenn XP / Vista / 7 sagen das es geht,
dann mache ich es auch so. Nur so kann man sich sicher sein.

Re: Ordner für Programsettings?
Verfasst: 01.04.2010 21:19
von rolaf
ts-soft hat geschrieben:Problematisch finde ich es eher, wenn jemand "Anwendungsdaten" da anhängt, weil so heißt der
Ordner nur auf dt. Systemen WinXP und kleiner. Vista und Co zeigen zwar Anwendungdaten an,
aber nur virtuell, der Ordner ist "AppData\Roaming".
Auch wenn heute der 1.04. ist, sind bisher nur meine beiden Lösungen akzeptabel, jedenfalls
für mich
Alles andere ist eher unprofessionelles gewurschtel

Als wenn ichs geahnt habe: Ruhig Bello!
Alles was geht ist erlaubt...