[erledigt] "Richtlinien" für XP/Vista ?

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
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 »

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 :mrgreen:

Code: Alles auswählen

Debug GetEnvironmentVariable("APPDATA") + ""
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
scholly
Beiträge: 793
Registriert: 04.11.2005 21:30
Wohnort: Düsseldorf

Beitrag von scholly »

ts-soft hat geschrieben: oder einfacher :mrgreen:

Code: Alles auswählen

Debug GetEnvironmentVariable("APPDATA") + ""
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) :lol:

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)
Benutzeravatar
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 »

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!
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Antworten