Seite 1 von 1
Wie ermittle ich "C:\Program Files\" mit SpecialFolders
Verfasst: 31.12.2010 18:34
von Sicro
Hallo nochmal,
folgendes Problem:
Code: Alles auswählen
Procedure.s GetSpecialFolder(Folder.l)
Protected *itemid.ITEMIDLIST = #Null
Protected location.s = Space(#MAX_PATH)
If SHGetSpecialFolderLocation_(0, Folder, @*itemid) = #NOERROR
If SHGetPathFromIDList_(*itemid, @location)
If Right(location, 1) <> "\": location + "\": EndIf
CoTaskMemFree_(*itemid)
ProcedureReturn location
EndIf
EndIf
EndProcedure
Debug GetSpecialFolder(#CSIDL_PROGRAM_FILES)
; liefert "C:\Program Files (x86)\
Debug GetSpecialFolder(#CSIDL_PROGRAM_FILESX86)
; liefert "C:\Program Files (x86)\
Wie ermittle ich den Pfad "C:\Program Files\"?
Mfg Sicro
Re: Wie ermittle ich "C:\Program Files\" mit SpecialFolders
Verfasst: 31.12.2010 18:42
von ts-soft
Re: Wie ermittle ich "C:\Program Files\" mit SpecialFolders
Verfasst: 31.12.2010 19:53
von Sicro
Dein Beispiel-Code funktioniert auch bei mir, zeigt jedoch
in Verbindung mit meinem Code keine Wirkung - auch nicht in
meinem anderen Thread. Schade, trotzdem danke.
Re: Wie ermittle ich "C:\Program Files\" mit SpecialFolders
Verfasst: 31.12.2010 20:14
von PureLust
Sicro hat geschrieben:Dein Beispiel-Code funktioniert auch bei mir, zeigt jedoch
in Verbindung mit meinem Code keine Wirkung - auch nicht in
meinem anderen Thread. Schade, trotzdem danke.
Compiliere Deinen Source mal mit der x64-Version von PB, damit Du auch ein 64Bit-Programm erstellst, dann liefert Dir "#CSIDL_PROGRAM_FILES" auch den gewünschten Pfad.
Ein x86-Programm hat unter einem 64Bit-Windows nichts in "C:\Program Files\" zu suchen sondern gehört nach "C:\Program Files (x86)\" - daher bekommst Du für ein x86-Programm in beiden Fällen den gleichen (x86) Pfad..
Gruß, PL.
Re: Wie ermittle ich "C:\Program Files\" mit SpecialFolders
Verfasst: 31.12.2010 20:57
von Sicro
PureLust hat geschrieben:Compiliere Deinen Source mal mit der x64-Version von PB, damit Du auch ein 64Bit-Programm erstellst, dann liefert Dir "#CSIDL_PROGRAM_FILES" auch den gewünschten Pfad.
Vielen Dank, mit PureBasic x64 geht es.
Nun habe ich mal einen Grund, zusätzlich ein x64-Programm zu erstellen (nichts gegen x64...).
PureLust hat geschrieben:Ein x86-Programm hat unter einem 64Bit-Windows nichts in "C:\Program Files\" zu suchen sondern gehört nach "C:\Program Files (x86)\" [...]
Das Programm hat nur die Aufgabe den Ordnerinhalt dieser Ordner auszulesen.
Mfg Sicro
Re: Wie ermittle ich "C:\Program Files\" mit SpecialFolders
Verfasst: 02.01.2011 01:55
von ts-soft
Re: Wie ermittle ich "C:\Program Files\" mit SpecialFolders
Verfasst: 02.01.2011 17:33
von Sicro
Danke ts-soft, kann ich sicherlich auch mal gebrauchen.
Habe mich dazu entschieden zusätzlich eine 64-Bit-Version meines Programms anzubieten.
So funktioniert auch der Code des anderen Threads korrekt und es wird nicht herumgetrickst.