Seite 1 von 2

Pfad-Umgebung abfrage

Verfasst: 19.06.2009 16:23
von KatSeiko
Mit welchem Befehl kann ich Daten wie z.B. den Pfad zum AppData-Ordner auslesen? GetUserDirectory() ist der einzige Befehl, den ich zu diesem Thema gefunden habe, aber er gibt nicht ganz das wieder, was ich möchte... (Üblicherweise ist der AppData-Ordner ohne Schreibblockade, auch wenn man im User-Modus ist und nicht unter XP)...

Verfasst: 19.06.2009 16:52
von RSBasic
Den Pfad zum AppData-Verzeichnis kannst du mit dem Beispielcode von ts-soft ermitteln:

Code: Alles auswählen

Procedure.s GetSpecialFolder(CSIDL.l)
  Protected *itemid.ITEMIDLIST
  Protected location.s = Space(#MAX_PATH)

  If SHGetSpecialFolderLocation_ (0, CSIDL, @*itemid) = #NOERROR
    If SHGetPathFromIDList_(*itemid, @location)
      CoTaskMemFree_(*itemid)
      If Right(location, 1) <> "\" : location + "\" : EndIf
      ProcedureReturn location
    EndIf
  EndIf
EndProcedure

Debug GetSpecialFolder(#CSIDL_APPDATA)

Verfasst: 19.06.2009 18:44
von KatSeiko
Danke, das scheint zu funktionieren (muss ich nur noch auf Vista und XP testen). :allright:

An wen muss ich mich denn mit Verbesserungsvorschlägen für PureBasic wenden? Wenn ich Windows frage, wo ein besonderer Ordner ist, z,B, der AppData-Ordner, benutze ich "%APPDATA%... Wenn man unter CMD den Befehl SET eingibt, wird direkt eine Liste mit Umgebungsvariablen ausgespuckt. Eine Funktion wie "GetSystemVariable(name.s)" wär da eigentlich nicht verkehrt.. So weit ich das erkennen kann, fragt GetUserDirectory() auch nur nach der Variablen "USERPROFILE".

Verfasst: 19.06.2009 18:51
von Kaeru Gaman
> An wen muss ich mich denn mit Verbesserungsvorschlägen für PureBasic wenden?

http://www.purebasic.fr/english/viewforum.php?f=3


... allerdings würde ich dir durchaus erstmal eine kräftige Portion RTFM empfehlen ... :twisted:

http://www.purebasic.com/german/documen ... ables.html

Verfasst: 20.06.2009 15:56
von KatSeiko
Okay, aber eins musst du zugeben: Auf diesen Namen muss erst mal einer kommen! :D

Verfasst: 20.06.2009 16:53
von AND51
...was nicht schwer ist, denn wer Englisch kann, denkt immer so:

get = kriege
environment = umgebung
variable = variable

GetEnvironmentVariable() ist also ein einfacher, syntaktisch selbsterklärender Befehl. Um den geht's, damit kriegst du %AppData% direkt, ExamineEnvironmentVariable() ist nur nötig, um nach unbekannten Umgebungsvariablen zu suchen, die du (noch) nicht kennst.
Einer der Englisch kann, gibt also "get" ein uns liest sich schnell die Autocomplete-Einträge durch.


Wer neugierig ist und gern ausprobiert, hätte es zum Beispiel so versucht:

Code: Alles auswählen

SetCurrentDirectory("%APPDATA%")
appdata.s=GetCurrentDirectory()

Debug appdata

ExamineDirectory(0, appdata, "")
; Verzeichnis auslesen
...weil er vermutet, dass SetCurrentDirectory() die Variable autoamtisch konvertiert.


Anscheinend bist du weder des Englischen mächtig oder neugierig, also hoffen wir, dass du wenigstens rational bist und deutsch verstehst:

Denn so einer hätte die Hilfe aufgeschlagen, nicht gewusst, in welcher Kategorie GetEnvironmentVariable() gehört und "Misc" aufgeschlagen. Mist, steht da nicht. FileSystem vielleicht? Nö auch nicht. Ah da, vielleicht ist es "Process". Bingo, Ingo!



Schade, dass du in keine dieser 3 KatEgorien gehörst, KatSeiko.
Eines muss man dir aber lassen:
Mit deinem "GetSystemVariable()" lagst du ja nicht sehr verkehrt. Also versuche demnächst doch mal, zu Kategorie 1 zu gehören und vielleicht löst sich dann dein Problem von selbst!

Verfasst: 20.06.2009 17:59
von ZeHa
Mußt Du eigentlich ständig so überheblich sein?

Im Übrigen kann es doch auch gut sein, daß er nichtmal den deutschen Begriff "Umgebungsvariable" kennt (weil dieser Begriff ungefähr genauso intuitiv ist wie "Eingabegebietsschemaleiste" oder sowas), wie soll er dann aus dem Nichts heraus auf "Environment" kommen?

Verfasst: 20.06.2009 19:07
von AND51
Gut, ich hätte auch Kaeru Gaman rezitieren können, aber dann wäre es nicht so konstruktiv gewesen.

Ich wusste nicht, dass Vorschläge für Problembewältigung so wenig gefragt sind. Da frage ich mich dann wiederum, was die ganzen Unterforne hier sollen. Offtopic reicht doch. :|

P.S.: Das war Ironie.

Verfasst: 20.06.2009 20:20
von Kaeru Gaman
KatSeiko hat geschrieben:Okay, aber eins musst du zugeben: Auf diesen Namen muss erst mal einer kommen! :D
öhm... nö.
Auch die Help hat ne Suchfunktion.
"*environment*" ins suchfeld einzugeben ist völlig ausreichend.

Verfasst: 20.06.2009 20:33
von DarkDragon
Kaeru Gaman hat geschrieben:
KatSeiko hat geschrieben:Okay, aber eins musst du zugeben: Auf diesen Namen muss erst mal einer kommen! :D
öhm... nö.
Auch die Help hat ne Suchfunktion.
"*environment*" ins suchfeld einzugeben ist völlig ausreichend.
Joa, hätt ich das bloß nie gemacht, ich bereue es heute. Ich hätte viel mehr in Foren Fragen sollen statt selbst zu suchen. Jetzt ist meine Motivation erschöpft, weil ich zuviel übers Programmieren in meinem Bereich weiß. Früher war das nicht so als ich noch in Foren alles erfragt hab. :freak: