Jump to content

Pfad zum Windows-Verzeichnis auslesen


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo,

ich weiss nicht, ob ich in diesem Unterforum richtig bin, wenn nicht, bitte einfach verschieben.

 

Ich versuche in VB/VBA den Pfad zum Windows-Verzeichnis auf dem Homelaufwerk auszulesen.

 

Mein Versuch war:

  Private Function GetWindowsDirectory(ByVal lpBuffer As Text.StringBuilder, _
                   ByVal uSize As UInteger) As UInteger
   End Function

   Public Function GetWindowsDirectory() As String
       Dim lLen As Integer
       Dim lBuffer As New Text.StringBuilder(260)

       lLen = CInt(GetWindowsDirectory(lBuffer, _
                       CUInt(lBuffer.Capacity)))

       MsgBox(lBuffer.ToString(0, lLen))
       Return lBuffer.ToString(0, lLen)
   End Function

aber GetWindowsDirectory gibt mir immer einen lehren String zurück.

Kann mir hier jemand weiterhelfen?

 

Vielen Dank!

Link zu diesem Kommentar

Ich weiß nicht mehr woher ich das Modul habe, aber es tut was es soll:

 

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

 

Aufruf:

Dim pfadEigeneDateien as String

pfadEigeneDateien = GetSpecialFolder(sfidPERSONAL)

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...