Ist eine DFÜ-Verbindung installiert oder nicht? Genau das erfahren Sie, wenn Sie sich mal die Windows-Registry genauer anschauen. Alle DFÜ-Verbindungen werden hier gespeichert - und zwar im Zweig HKEY_CURRENT_USER\RemoteAccess\Profile. Was liegt also näher, als genau diesen Registry-Zweig unter Einsatz der entsprechenden WinAPI-Funktionen auszulesen, um so festzustellen, ob und welche DFÜ-Verbindungen auf dem Anwenderrechner installiert sind. Und so wird's gemacht: ' benötigte API-Deklarationen Private Declare Function RegOpenKeyEx Lib "advapi32.dll" _ Alias "RegOpenKeyExA" ( _ ByVal hKey As Long, _ ByVal lpSubKey As String, _ ByVal ulOptions As Long, _ ByVal samDesired As Long, _ phkResult As Long) As Long Private Declare Function RegEnumKey Lib "advapi32.dll" _ Alias "RegEnumKeyA" ( _ ByVal hKey As Long, _ ByVal dwIndex As Long, _ ByVal lpName As String, _ ByVal cbName As Long) As Long Private Declare Function RegCloseKey Lib "advapi32.dll" ( _ ByVal hKey As Long) As Long ' Konstanten Private Const HKEY_CURRENT_USER = &H80000001 Private Const KEY_ENUMERATE_SUB_KEYS = &H8 Private Const ERROR_SUCCESS = 0& ' Alle installierten DFÜ-Verbindungen ermitteln ' und die Namen als String-Array zurückgeben Public Function RAS_GetConnections() As Variant Dim ErrCode As Long Dim keyIndex As Long Dim strBuffer As String Dim lStatus As Long Dim hKey As Long ReDim RASList(0) As String ' Registry-Zweig öffnen ErrCode = RegOpenKeyEx(HKEY_CURRENT_USER, _ "RemoteAccess\Profile", 0, _ KEY_ENUMERATE_SUB_KEYS, hKey) If ErrCode = ERROR_SUCCESS Then ' Alle SubKeys auslesen keyIndex = 0 Do strBuffer = Space(255) lStatus = RegEnumKey(hKey, keyIndex, strBuffer, _ Len(strBuffer)) If lStatus <> 0 Then Exit Do strBuffer = Left$(strBuffer, _ InStr(1, strBuffer, vbNullChar) - 1) ReDim Preserve RASList(keyIndex) RASList(keyIndex) = strBuffer keyIndex = keyIndex + 1 Loop End If ' Registry-Zugriff beenden Call RegCloseKey(hKey) If RASList(0) <> "" Then RAS_GetConnections = RASList Else RAS_GetConnections = "" End If End Function Beispiel ' alle installierten DFÜ-Verbindungen in ' einer ListBox anzeigen Dim I As Integer Dim RASList As Variant RASList = RAS_GetConnections() If IsArray(RASList) Then For I = 0 To UBound(RASList) List1.AddItem RASList(I) Next I Else List1.AddItem "keine DFÜ-Verbidnungen" End If Dieser Tipp wurde bereits 21.795 mal aufgerufen. Voriger Tipp | Zufälliger Tipp | Nächster Tipp
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv Vol.6 (einschl. Beispielprojekt!) Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
Neu! sevEingabe 3.0 Einfach stark! Ein einziges Eingabe-Control für alle benötigten Eingabetypen und -formate, inkl. Kalender-, Taschenrechner und Floskelfunktion, mehrspaltige ComboBox mit DB-Anbindung, ImageComboBox u.v.m. Tipp des Monats September 2024 Dieter Otter Übergabeparameter: String oder Array? Mit der IsArray-Funktion lässt sich prüfen, ob es sich bei einem Übergabeparameter an eine Prozedur um ein Array oder einer "einfachen" Variable handelt. TOP Entwickler-Paket TOP-Preis!! Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR... |
||||||||||||||||
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |