Mit der rasanten Entwicklung des Internets erfordert das Programmieren heute oft eine direkte Vernetzung im Programm, um einige Dinge zu erledigen, wie z. B. die Online-Registrierung und die Online-Hilfe, was erfordert, dass wir bestimmte Verbindungen im Programm herstellen. Viele Softwareprogramme starten den Browser, um nach der URL zu suchen, ohne zu wissen, ob der Benutzer mit dem Internet verbunden ist. Nach viel Aufwand können sie nur eine Fehlerseite finden (es gibt natürlich kein gutes Ergebnis). Wenn wir beim Schreiben des Programms automatisch feststellen können, ob der Benutzer mit dem Internet verbunden ist, und wenn ja, die Verbindung öffnen und, wenn nicht, die Standard-DFÜ-Verbindung starten können, werden die Leute dadurch das Gefühl haben, dass Ihre Software besser ist als andere ? Die Feststellung, ob Sie mit dem Internet verbunden sind, wird an vielen Stellen vorgestellt. Hier stellen wir nur vor, wie Sie die Standard-DFÜ-Verbindung herstellen.
----Vor der Einführung werfen wir zunächst einen Blick darauf, wie man ein DFÜ-Netzwerk öffnet. Da es sich beim DFÜ-Netzwerk nicht um eine ausführbare Datei handelt, kann sie nicht mit der Methode „Shell-ausführbare Datei“ geöffnet werden. Um das DFÜ-Netzwerk zu starten, müssen Sie den Explorer verwenden. Die Methode ist wie folgt:
Shell"Explorer::{20D04FE0-3AEA-1069-A2D8-08002B30309D}/"&"::{992CFFA0-F557-101A-88EC-00DD010CCC48}",vbNormalFocus
----Wenn Sie jedoch eine Verbindung im DFÜ-Netzwerk herstellen möchten, müssen Sie zum Starten rundll.exe und rnaui.dll verwenden. Die Methode lautet wie folgt (vorausgesetzt, der Verbindungsname ist 163):
Shell"rundllrnaui.dll,RnaDial163",vbNormalFocus
----Hinweis: Fügen Sie in der obigen Beschreibung keine zusätzlichen Leerzeichen in den Teil „,RnaDial163“ ein und ändern Sie die Groß-/Kleinschreibung nicht willkürlich.
----Das Obige setzt nur den Verbindungsnamen voraus, aber bei der tatsächlichen Programmierung kennen wir seinen Namen nicht. Wie erhalte ich den Standardverbindungsnamen und starte ihn? Hier können wir die Registrierung nutzen, um unser Ziel zu erreichen. Der vollständige Ablauf ist wie folgt:
----Platzieren Sie eine Befehlsschaltfläche (mit dem Namen cmdCallConnect) im Formular. Das Folgende ist der Codeteil:
OptionExplicit
'API-Erklärung zur Registrierung
PRivateDeclareFunctionRegOpenKeyExLib"advapi32"Alias"RegOpenKeyExA"(ByValhKeyAsLong,ByVallpSubKeyAsString,ByValulOptionsAsLong,ByValsamDesiredAsLong,phkResultAsLong)AsLong
PrivateDeclareFunctionRegQueryValueExLib"advapi32"Alias"RegQueryValueExA"(ByValhKeyAsLong,ByVallpValueNameAsString,ByVallpReservedAsLong,ByReflpTypeAsLong,ByValszDataAsString,ByReflpcbDataAsLong)AsLong
PrivateDeclareFunctionRegCloseKeyLib"advapi32"(ByValhKeyAsLong)AsLong
'Konstante
ConstHKEY_CURRENT_USER=&H80000001
ConstERROR_SUCCESS=0&
PrivateSubcmdCallConnect_Click()
'Starten Sie die Standard-DFÜ-Verbindung
Shell"rundllrnaui.dll,RnaDial" GetConnect,vbNormalFocus
EndSub
PublicFunctionGetConnect()AsString
DimhKeyAsLong
DimSubKeyAsString
hKey=HKEY_CURRENT_USER'Primärschlüssel
SubKey="Remoteaccess"'Unterschlüssel
'Rufen Sie den Standardverbindungsnamen ab
GetConnect=GetRegValue(hKey,SubKey,"Default")
EndFunction
PublicFunctionGetRegValue(hKeyAsLong,lpszSubKeyAsString,szKeyAsString)AsVariant
OnErrorGoToErrorRoutineErr:
DimphkResultAsLong
DimlResultAsLong
DimszBufferAsString
DimlBuffSizeAsLong
'Puffer erstellen
szBuffer=Space(255)
lBuffSize=Len(szBuffer)
„Öffnen Sie den Registrierungsschlüssel
RegOpenKeyExhKey,lpszSubKey,0,1,phkResult
'Abfrageergebnisse
lResult=RegQueryValueEx(phkResult,szKey,0,0,szBuffer,lBuffSize)
'Registrierungsschlüssel schließen
RegCloseKeyphkResult
'Rückgabeergebnis
IflResult=ERROR_SUCCESSThen
GetRegValue=Left(szBuffer,lBuffSize-1)
Anders
GetRegValue=""
EndIf
ExitFunction
ErrorRoutineErr:
GetRegValue=""
EndFunction
Das obige Programm wurde unter WIN98 und VB6.0 debuggt. ->