Rubrik: Dateisystem · Ordner & Verzeichnisse | VB-Versionen: VB4, VB5, VB6 | 26.05.02 |
Systemordner ermitteln II Eine Funktion, mit der sich die Pfadangaben zu den Systemordnern, wie Eigene Dateien, Desktop ... des aktuellen Benutzers ermitteln lassen. | ||
Autor: Josef Balom | Bewertung: | Views: 31.067 |
www.balom.de | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Dieser Tipp zeigt, wie Sie die Systemordner (Eigene Dateien, Desktop...) ermitteln können.
Im Gegensatz zu einem unserer früheren Tipps wurde die Auflistung der möglichen Ordner um einiges erweitert.
Nachfolgenden Code bitte in ein Modul "packen"
Option Explicit ' Ordner-Auflistung Public Enum SpecialFolderIDs sfidDESKTOP = &H0 ' Desktop sfidNTERNET = &H1 ' Internet Explorer (icon on desktop) sfidPROGRAMS = &H2 ' Start Menu\Programs sfidCONTROLS = &H3 ' My Computer\Control Panel sfidPRINTERS = &H4 ' My Computer\Printers sfidPERSONAL = &H5 ' My Documents sfidFAVORITES = &H6 ' \Favorites sfidSTARTUP = &H7 ' StartMenu\Programs\Startup sfidRECENT = &H8 ' \Recent sfidSENDTO = &H9 ' \SendTo sfidBITBUCKET = &HA ' \Recycle Bin sfidSTARTMENU = &HB ' \StartMenu sfidDESKTOPDIRECTORY = &H10 ' name>\Desktop sfidDRIVERS = &H11 ' My Computer sfidNETWORK = &H12 ' Network Neighborhood sfidNETHOOD = &H13 ' \nethood sfidFONTS = &H14 ' windows\fonts sfidTEMPLATES = &H15 sfidCOMMON_STARTMENU = &H16 ' All Users\StartMenu sfidCOMMON_PROGRAMS = &H17 ' AllUsers\Programs sfidCOMMON_STARTUP = &H18 ' AllUsers\Startup sfidCOMMON_DESKTOPDIRECTORY = &H19 ' AllUsers\Desktop sfidAPPDATA = &H1A ' name>\Application Data sfidPRINTHOOD = &H1B ' name>\PrintHood sfidLOCAL_APPDATA = &H1C ' name>\Local Settings\Applicaiton Data (non roaming) sfidALTSTARTUP = &H1D ' non localizedstartup sfidCOMMON_ALTSTARTUP = &H1E ' non localizedCommon startup sfidCOMMON_FAVORITES = &H1F sfidINTERNET_CACHE = &H20 sfidCOOKIES = &H21 sfidHISTORY = &H22 sfidCOMMON_APPDATA = &H23 ' AllUsers\Application Data sfidWINDOWS = &H24 ' GetWindowsDirectory() sfidSYSTEM = &H25 ' GetSystemDirectory() sfidPROGRAM_FILES = &H26 ' C:\Program Files sfidMYPICTURES = &H27 ' C:\Program Files\My Pictures sfidPROFILE = &H28 ' USERPROFILE sfidSYSTEMX86 = &H29 ' x86 system directory on RISC sfidPROGRAM_FILESX86 = &H2A ' x86 C:\Program Files on RISC sfidPROGRAM_FILES_COMMON = &H2B ' C:\Program Files\Common sfidPROGRAM_FILES_COMMONX86 = &H2C ' x86 Program Files\Common on RISC sfidCOMMON_TEMPLATES = &H2D ' All Users\Templates sfidCOMMON_DOCUMENTS = &H2E ' All Users\Documents sfidCOMMON_ADMINTOOLS = &H2F ' All Users\Start Menu\Programs\Administrative Tools sfidADMINTOOLS = &H30 ' \Start Menu\Programs\Administrative Tools sfidProgramFiles = &H10000 sfidCommonFiles = &H10001 End Enum Private Type SHITEMID cb As Long abID As Byte End Type Private Type ITEMIDLIST mkid As SHITEMID End Type Private Declare Function SHGetSpecialFolderLocation Lib "shell32.dll" ( _ ByVal hwndOwner As Long, _ ByVal nFolder As Long, _ pidl As ITEMIDLIST) As Long Private Declare Function SHGetPathFromIDList Lib "shell32.dll" _ Alias "SHGetPathFromIDListA" ( _ ByVal pidl As Long, _ ByVal pszPath As String) As Long
' Standard Systemordner ermitteln Public Function GetSpecialFolder(CSIDL As _ SpecialFolderIDs) As String Dim lResult As Long Dim IDL As ITEMIDLIST Dim sPath As String lResult = SHGetSpecialFolderLocation(100, CSIDL, IDL) If lResult = 0 Then sPath = Space$(512) lResult = SHGetPathFromIDList(ByVal IDL.mkid.cb, _ ByVal sPath) GetSpecialFolder = Left$(sPath, InStr(sPath, _ Chr$(0)) - 1) End If End Function
Beispiele
' zum Aufrufen kann z.B. folgendes verwendet werden: sPfadDesktop = GetSpecialFolder(sfidPERSONAL)