Rubrik: Dateisystem · Ordner & Verzeichnisse | VB-Versionen: VB4, VB5, VB6 | 19.07.01 |
Standard System-Ordner ermitteln Die nachfolgende Routine ermittelt die Standard System-Ordner, wie Favoriten, Desktop, Programme usw. | ||
Autor: Dieter Otter | Bewertung: | Views: 23.954 |
www.tools4vb.de | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Unser nachfolgender Tipp ermittelt die Standard System-Ordner, wie den Favoriten-Ordner, das Startmenü, den Desktop, usw.
Übergeben Sie der Funktion GetSpecialOrdner einfach den gewünschten Ordner. Als Rückgabewert erhalten Sie dann den exakten Verzeichnispfad.
' Den nachfolgenden Code in ein Modul "packen" Option Explicit Public Enum SpecialFolderIDs sfidDESKTOP = &H0 sfidPROGRAMS = &H2 sfidPERSONAL = &H5 sfidFAVORITES = &H6 sfidSTARTUP = &H7 sfidRECENT = &H8 sfidSENDTO = &H9 sfidSTARTMENU = &HB sfidDESKTOPDIRECTORY = &H10 sfidNETHOOD = &H13 sfidFONTS = &H14 sfidTEMPLATES = &H15 sfidCOMMON_STARTMENU = &H16 sfidCOMMON_PROGRAMS = &H17 sfidCOMMON_STARTUP = &H18 sfidCOMMON_DESKTOPDIRECTORY = &H19 sfidAPPDATA = &H1A sfidPRINTHOOD = &H1B 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
Dim sPfad As String ' Verzeichnis des Favoriten-Ordners sPfad = GetSpecialFolder(sfidFAVORITES) ' Verzeichnis des Windows-Desktops sPfad = GetSpecialFolder(sfidDESKTOP) ' Verzeichnis "Schriftarten" sPfad = GetSpecialFolder(sfidFONTS)