Seite 2 von 2
Verfasst: 22.05.2008 00:12
von ts-soft
scholly hat geschrieben:Bei Gelegenheit muß ich dann nur noch herausbekommen, wie ich
Code: Alles auswählen
TCHAR szAppData[MAX_PATH];
hr = SHGetFolderPath(NULL, CSIDL_APPDATA, NULL, 0, szAppData)
in PB nutzen kann.
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)
If Right(location, 1) <> "" : location + "" : EndIf
ProcedureReturn location
EndIf
EndIf
EndProcedure
Debug GetSpecialFolder(#CSIDL_APPDATA)
oder einfacher
Verfasst: 22.05.2008 18:33
von scholly
ts-soft hat geschrieben:
oder einfacher
Keine Ahnung, ob das wer anders mal brauchen kann, aber weils heut etwas kühl/trüb und nicht animierend für Gartenarbeit war, hab ich mal verglichen, was man per Environment bzw. CSIDL erhalten kann:
Code: Alles auswählen
Procedure.s GetSpecialFolder(CSIDL.l)
;ts-soft
;http://www.purebasic.fr/german/viewtopic.php?t=16561&start=10
Protected *itemid.ITEMIDLIST
Protected location.s = Space(#MAX_PATH)
If SHGetSpecialFolderLocation_ (0, CSIDL, @*itemid) = #NOERROR
If SHGetPathFromIDList_(*itemid, @location)
If Right(location, 1) <> ""
location + ""
EndIf
ProcedureReturn location
EndIf
EndIf
EndProcedure
Debug "Folders per GetEnvironmentVariable()"
Debug "----------------------------------------------------------------------------"
Debug "ALLUSERSPROFILE = " + GetEnvironmentVariable("ALLUSERSPROFILE") + ""
Debug "APPDATA = " + GetEnvironmentVariable("APPDATA") + ""
Debug "CommonProgramFiles = " + GetEnvironmentVariable("CommonProgramFiles") + ""
Debug "HOMEDRIVE = " + GetEnvironmentVariable("HOMEDRIVE") + ""
Debug "HOMEPATH = " + GetEnvironmentVariable("HOMEPATH") + ""
Debug "ProgramFiles = " + GetEnvironmentVariable("ProgramFiles") + ""
Debug "SystemDrive = " + GetEnvironmentVariable("SystemDrive") + ""
Debug "SystemRoot = " + GetEnvironmentVariable("SystemRoot") + ""
Debug "TEMP = " + GetEnvironmentVariable("TEMP") + ""
Debug "TMP = " + GetEnvironmentVariable("TMP") + ""
Debug "USERPROFILE = " + GetEnvironmentVariable("USERPROFILE") + ""
Debug "windir = " + GetEnvironmentVariable("windir") + ""
Debug "----------------------------------------------------------------------------"
Debug "CSIDL-Folders per SHGetSpecialFolderLocation_()"
Debug "----------------------------------------------------------------------------"
Debug "CSIDL_ADMINTOOLS = " + GetSpecialFolder(#CSIDL_ADMINTOOLS )
Debug "CSIDL_ALTSTARTUP = " + GetSpecialFolder(#CSIDL_ALTSTARTUP )
Debug "CSIDL_APPDATA = " + GetSpecialFolder(#CSIDL_APPDATA )
Debug "CSIDL_BITBUCKET = " + GetSpecialFolder(#CSIDL_BITBUCKET)
Debug "CSIDL_CDBURN_AREA = " + GetSpecialFolder(#CSIDL_CDBURN_AREA)
Debug "CSIDL_COMMON_ADMINTOOLS = " + GetSpecialFolder(#CSIDL_COMMON_ADMINTOOLS)
Debug "CSIDL_COMMON_ALTSTARTUP = " + GetSpecialFolder(#CSIDL_COMMON_ALTSTARTUP)
Debug "CSIDL_COMMON_APPDATA = " + GetSpecialFolder(#CSIDL_COMMON_APPDATA )
Debug "CSIDL_COMMON_DESKTOPDIRECTORY = " + GetSpecialFolder(#CSIDL_COMMON_DESKTOPDIRECTORY )
Debug "CSIDL_COMMON_DOCUMENTS = " + GetSpecialFolder(#CSIDL_COMMON_DOCUMENTS )
Debug "CSIDL_COMMON_FAVORITES = " + GetSpecialFolder(#CSIDL_COMMON_FAVORITES )
Debug "CSIDL_COMMON_MUSIC = " + GetSpecialFolder(#CSIDL_COMMON_MUSIC )
Debug "CSIDL_COMMON_OEM_LINKS = " + GetSpecialFolder(#CSIDL_COMMON_OEM_LINKS )
Debug "CSIDL_COMMON_PICTURES = " + GetSpecialFolder(#CSIDL_COMMON_PICTURES )
Debug "CSIDL_COMMON_PROGRAMS = " + GetSpecialFolder(#CSIDL_COMMON_PROGRAMS )
Debug "CSIDL_COMMON_STARTMENU = " + GetSpecialFolder(#CSIDL_COMMON_STARTMENU )
Debug "CSIDL_COMMON_STARTUP = " + GetSpecialFolder(#CSIDL_COMMON_STARTUP )
Debug "CSIDL_COMMON_TEMPLATES = " + GetSpecialFolder(#CSIDL_COMMON_TEMPLATES )
Debug "CSIDL_COMMON_VIDEO = " + GetSpecialFolder(#CSIDL_COMMON_VIDEO )
Debug "CSIDL_COMPUTERSNEARME = " + GetSpecialFolder(#CSIDL_COMPUTERSNEARME )
Debug "CSIDL_CONNECTIONS = " + GetSpecialFolder(#CSIDL_CONNECTIONS )
Debug "CSIDL_CONTROLS = " + GetSpecialFolder(#CSIDL_CONTROLS )
Debug "CSIDL_COOKIES = " + GetSpecialFolder(#CSIDL_COOKIES )
Debug "CSIDL_DESKTOP = " + GetSpecialFolder(#CSIDL_DESKTOP )
Debug "CSIDL_DESKTOPDIRECTORY = " + GetSpecialFolder(#CSIDL_DESKTOPDIRECTORY )
Debug "CSIDL_DRIVES = " + GetSpecialFolder(#CSIDL_DRIVES )
Debug "CSIDL_FAVORITES = " + GetSpecialFolder(#CSIDL_FAVORITES )
Debug "CSIDL_FONTS = " + GetSpecialFolder(#CSIDL_FONTS )
Debug "CSIDL_HISTORY = " + GetSpecialFolder(#CSIDL_HISTORY )
Debug "CSIDL_INTERNET = " + GetSpecialFolder(#CSIDL_INTERNET )
Debug "CSIDL_INTERNET_CACHE = " + GetSpecialFolder(#CSIDL_INTERNET_CACHE )
Debug "CSIDL_LOCAL_APPDATA = " + GetSpecialFolder(#CSIDL_LOCAL_APPDATA )
Debug "CSIDL_MYDOCUMENTS = " + GetSpecialFolder(#CSIDL_MYDOCUMENTS )
Debug "CSIDL_MYMUSIC = " + GetSpecialFolder(#CSIDL_MYMUSIC )
Debug "CSIDL_MYPICTURES = " + GetSpecialFolder(#CSIDL_MYPICTURES )
Debug "CSIDL_MYVIDEO = " + GetSpecialFolder(#CSIDL_MYVIDEO )
Debug "CSIDL_NETHOOD = " + GetSpecialFolder(#CSIDL_NETHOOD )
Debug "CSIDL_NETWORK = " + GetSpecialFolder(#CSIDL_NETWORK )
Debug "CSIDL_PERSONAL = " + GetSpecialFolder(#CSIDL_PERSONAL )
Debug "CSIDL_PRINTERS = " + GetSpecialFolder(#CSIDL_PRINTERS )
Debug "CSIDL_PRINTHOOD = " + GetSpecialFolder(#CSIDL_PRINTHOOD )
Debug "CSIDL_PROFILE = " + GetSpecialFolder(#CSIDL_PROFILE )
Debug "CSIDL_PROGRAM_FILES = " + GetSpecialFolder(#CSIDL_PROGRAM_FILES )
Debug "CSIDL_PROGRAM_FILES_COMMON = " + GetSpecialFolder(#CSIDL_PROGRAM_FILES_COMMON )
Debug "CSIDL_PROGRAM_FILES_COMMONX86 = " + GetSpecialFolder(#CSIDL_PROGRAM_FILES_COMMONX86 )
Debug "CSIDL_PROGRAM_FILESX86 = " + GetSpecialFolder(#CSIDL_PROGRAM_FILESX86 )
Debug "CSIDL_PROGRAMS = " + GetSpecialFolder(#CSIDL_PROGRAMS )
Debug "CSIDL_RECENT = " + GetSpecialFolder(#CSIDL_RECENT )
Debug "CSIDL_RESOURCES = " + GetSpecialFolder(#CSIDL_RESOURCES )
Debug "CSIDL_RESOURCES_LOCALIZED = " + GetSpecialFolder(#CSIDL_RESOURCES_LOCALIZED )
Debug "CSIDL_SENDTO = " + GetSpecialFolder(#CSIDL_SENDTO )
Debug "CSIDL_STARTMENU = " + GetSpecialFolder(#CSIDL_STARTMENU )
Debug "CSIDL_STARTUP = " + GetSpecialFolder(#CSIDL_STARTUP )
Debug "CSIDL_SYSTEM = " + GetSpecialFolder(#CSIDL_SYSTEM )
Debug "CSIDL_SYSTEMX86 = " + GetSpecialFolder(#CSIDL_SYSTEMX86 )
Debug "CSIDL_TEMPLATES = " + GetSpecialFolder(#CSIDL_TEMPLATES )
Debug "CSIDL_WINDOWS = " + GetSpecialFolder(#CSIDL_WINDOWS)
Debug "----------------------------------------------------------------------------"
Best viewable with fixed fonts (TM)
Bei mir bleibt einige leer, was unter VISTA aber was rauswerfen sollte.
Verfasst: 22.05.2008 18:42
von ts-soft
Hinweis zu GetSpecialFolder:
Leider sind diese Konstanten abhängig von der WinVersion, sowie von dem
installiertem Internet Explorer.
Wenn alternativen vorhanden, sollte man diese nehmen, z.B.
GetSystemDirectory_() für das Systemverzeichnis. Am besten immer in der
MSDN nachschauen, bzw. über Google suchen, da gibts bereits diverse
Aufstellungen, was ab wann.
Die gilt besonders, wenn man Win9x Plattformen unterstützen möchte!