Anfängerfragen zum Programmieren mit PureBasic.
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
Beitrag
von ts-soft » 22.05.2008 00:12
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
scholly
Beiträge: 793 Registriert: 04.11.2005 21:30
Wohnort: Düsseldorf
Beitrag
von scholly » 22.05.2008 18:33
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.
Ich bin blutiger PB-Anfänger.
seit 17.12.08: PB 4.3 unter XP Home(SP3)
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
Beitrag
von ts-soft » 22.05.2008 18:42
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!