nahemoth 10 Geschrieben 9. Juni 2011 Melden Geschrieben 9. Juni 2011 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!
Dukel 468 Geschrieben 9. Juni 2011 Melden Geschrieben 9. Juni 2011 Kann man mit VB(A) Environment Variablen auslesen? Wenn ja frage "SystemRoot" ab.
nahemoth 10 Geschrieben 9. Juni 2011 Autor Melden Geschrieben 9. Juni 2011 ja, kann man, ich habe es gerade über die beiden variablen HOMEDRIVE und HOMEPATH gelöst, wobei ich hier nicht weiss, ob dies immer korrekt ist. gibt SystemRoot das Windows-Verzeichnis auf H:\ aus?
Dukel 468 Geschrieben 9. Juni 2011 Melden Geschrieben 9. Juni 2011 Wenn Windows auf H: installiert ist, ja. Gib in der CMD "set" ein, dann siehst du alle Variablen.
nahemoth 10 Geschrieben 9. Juni 2011 Autor Melden Geschrieben 9. Juni 2011 Ahm, installiert doch keiner Windows nach H, es geht um das HomeLaufwerk des Users, eigentlich gehts darum, wo das Windows-Verzeichnis liegt, das Verwendet wird.
Dukel 468 Geschrieben 9. Juni 2011 Melden Geschrieben 9. Juni 2011 Was nun? Windows Verzeichnis oder Homelaufwerk? Homeverzeichnis gibt mit der Variable "HOMEPATH" oder "USERPROFILE".
nahemoth 10 Geschrieben 9. Juni 2011 Autor Melden Geschrieben 9. Juni 2011 ja, auf dem Homelaufwerk gibt es einen Windows-Ordner, in dem Benutzerspeziefische Programmdateien gepackt werden. Den brauch ich.
Dukel 468 Geschrieben 9. Juni 2011 Melden Geschrieben 9. Juni 2011 Ich sehe bei mir keinen. Aber dann kannst du "HOMEPATH" und Windows zusammenbauen.
Sunny61 833 Geschrieben 10. Juni 2011 Melden Geschrieben 10. Juni 2011 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)
blub 115 Geschrieben 10. Juni 2011 Melden Geschrieben 10. Juni 2011 Hallo, In VB gehts z.B. so: s=Environment.GetEnvironmentVariable("windir") blub
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden