Der DFÜ-Internetzugang über MODEM ist immer noch die Art und Weise, wie die meisten Internetnutzer auf das Internet zugreifen. Wenn wir DFÜ-Verbindungen in unseren Anwendungen aktivieren können (z. B. die automatische DFÜ-Funktion im IE-Browserprogramm), wird dies zweifellos für unsere Softwarebenutzer bequemer sein (kein Wechseln von Anwendungen und der Betrieb von DFÜ-Netzwerken erforderlich). und die Benutzerfreundlichkeit unserer Software verbessern und so die Wettbewerbsfähigkeit der Software verbessern.
Wenn unter WIN9X ein DFÜ-Netzwerk installiert ist, gibt es im Systemverzeichnis System des WINDOWS-Systems zwei DFÜ-Netzwerkverwaltungsbibliotheken, RasApi32.DLL und RasApi16.DLL. Wir können die darin enthaltenen Funktionen zum Erstellen und Verwenden verwenden Ändern von DFÜ-Verbindungen und DFÜ-Internetzugang über eine bestimmte DFÜ-Verbindung.
1. Erstellen Sie eine neue DFÜ-Verbindung
Wenn im WIN9X-System eine DFÜ-Verbindung aufgebaut wurde, kann die bestehende DFÜ-Verbindung genutzt werden. Wenn keine DFÜ-Verbindung besteht, müssen Sie eine neue DFÜ-Verbindung erstellen. Die entsprechende Funktion wird in RasAPI bereitgestellt, ihr Funktionsname ist RasCreatePhonebookEntryA und der Funktionsprototyp ist:
function RasCreatePhonebookEntryA( hwnd : THandle;lpszPhonebook: pchar ) : DWord;
stdcall; {befindet sich im Schnittstellenabschnitt}
function RasCreatePhonebookEntryA; external 'Rasapi32.dll';{ befindet sich im Implementierungsabschnitt}
Parameter:
hwnd (THandle): Das Handle des übergeordneten Fensters des neuen DFÜ-Verbindungsfensters, das das Handle von TForm oder der NIL-Windows-Desktop (DeskTop) sein kann;
lpszPhonebook (pchar): Telefonbuchname, hat unter Win9X keine Auswirkung, kann auf einen leeren String gesetzt werden
Rückgabewert der Funktion:
0 zeigt eine erfolgreiche Ausführung an; andernfalls handelt es sich um einen Fehler.
Nachfolgend finden Sie ein Beispiel für die Erstellung einer neuen DFÜ-Verbindung.
{Eine neue DFÜ-Verbindung erstellen}
PROzedur TForm1.Button1Click(Sender: TObject);
var
dwResult: DWORD;
beginnen
//Erstellen Sie im aktuellen Fenster eine neue DFÜ-Verbindung
dwResult := RasCreatePhonebookEntryA( handle, '' );
wenn dwResult = 0 dann
memo1.lines.add('Neue DFÜ-Verbindung erfolgreich!')
anders
memo1.lines.add('Neue DFÜ-Verbindung fehlgeschlagen!')
Ende;
2. Ändern Sie die Eigenschaften der angegebenen DFÜ-Verbindung
Wenn der Benutzer die Attribute der DFÜ-Verbindung wie Telefonnummer, Landes- und Ortsvorwahl, Verbindungsmethode, Servertyp usw. ändern muss, kann er dies mit der RasAPI-Funktion erreichen. Der Funktionsname lautet RasEditPhonebookEntryA Der Funktionsprototyp ist:
function RasEditPhonebookEntryA( hwnd : THandle; lpszPhonebook: pchar;
lpszEntryName: pchar ): DWORD;stdcall; {befindet sich im Schnittstellenteil}
function RasEditPhonebookEntryA; external 'Rasapi32.dll';{ befindet sich im Implementierungsabschnitt}
Parameter:
hwnd (THandle): Das Handle des übergeordneten Fensters des neuen DFÜ-Verbindungsfensters, das das Handle von TForm sein kann, ausgedrückt als NIL
Windows-Desktop (DeskTop)
lpszPhonebook (pchar): Telefonbuchname, hat unter Win9X keine Auswirkung, kann auf einen leeren String gesetzt werden
lpszEntryName: (pchar): Der Name der zu ändernden DFÜ-Verbindung, z. B. „163“, „169“ usw.
Rückgabewert der Funktion:
0 zeigt eine erfolgreiche Ausführung an; andernfalls handelt es sich um einen Fehler.
Im Folgenden finden Sie ein Beispiel für die Änderung der Eigenschaften einer angegebenen DFÜ-Verbindung.
{Ändern Sie die angegebenen Eigenschaften der DFÜ-Verbindung}
procedure TForm1.Button2Click(Sender: TObject);
var
dwResult: DWORD;
strDialName: string;
beginnen
strDialName := '163';//Setzen Sie den Namen der DFÜ-Verbindung auf 163
//Legen Sie die Eigenschaften der DFÜ-Verbindung im aktuellen Fenster fest und ändern Sie sie
dwResult := RasEditPhonebookEntryA( handle, '', PChar( strDialName ) );
wenn dwResult = 0 dann
memo1.lines.add('DFÜ-Verbindung ändern' + strDialName + 'Erfolg!')
anders
memo1.lines.add('DFÜ-Verbindung ändern' + strDialName + 'Fehlgeschlagen!')
Ende;
3. Rufen Sie die im aktuellen System verfügbaren DFÜ-Verbindungsnamen ab
Damit sich der Benutzer für die Einwahl über eine DFÜ-Verbindung entscheiden kann, müssen wir den Namen der DFÜ-Verbindung ermitteln, die im System eingerichtet wurde. Nach dem Aufbau einer DFÜ-Verbindung schreibt WIN9X den Namen und die Attribute der DFÜ-Verbindung in die Registrierung. Wir können die im aktuellen System verfügbaren DFÜ-Verbindungsnamen und den im Internet Explorer festgelegten Standardverbindungsnamen aus der Registrierung abrufen .
Unter HKEY_USERS.DefaultRemoteaccessAddresses in der Registrierung werden die Namen der im DFÜ-Netzwerk eingerichteten DFÜ-Verbindungen und deren Attributeinstellungen aufgeführt. Der Name jedes Elements ist der Name der verfügbaren DFÜ-Verbindung Bei jedem Element handelt es sich um den Namen der verfügbaren Eigenschafteneinstellungen für die DFÜ-Verbindung. Wir müssen nur den Namen jedes Projekts lesen, um die im aktuellen System verfügbaren DFÜ-Verbindungsnamen zu erhalten.
Wenn im Internet Explorer der Standardverbindungsname festgelegt ist (Ansicht => Internetoptionen => Verbindung => Verbindung => Einstellungen => Folgende DFÜ-Netzwerkverbindung verwenden), befindet sich unter HKEY_USERS.DefaultRemoteAccess in der Registrierung eine Zeichenfolge Typ Schlüsselwert, der Schlüsselwertname ist InternetProfile und sein Wert ist der in Internet Explorer festgelegte Standardverbindungsname.
Im Folgenden finden Sie ein Beispiel für den Abruf der Namen von DFÜ-Verbindungen, die auf dem aktuellen System verfügbar sind.
{Beachten Sie, dass die Registrierungseinheit zu „Verwendungen für den Betrieb der Registrierung“ hinzugefügt wird.}
{Rufen Sie die im aktuellen System verfügbaren DFÜ-Verbindungsnamen ab}
procedure TForm1.Button3Click(Sender: TObject);
var
RegistryTemp: TRegistry;
stringsTemp : TStringlist;
intIndex: Ganzzahl;
beginnen
RegistryTemp := TRegistry.Create;
stringsTemp := TStringlist.Create;
mit RegistryTemp tun
beginnen
RootKey := HKEY_USERS;//Der Root-Schlüssel ist auf HKEY_USERS gesetzt
//Wenn Unterschlüssel vorhanden sind.DefaultRemoteAccessAddresses
if OpenKey('.DefaultRemoteAccessAddresses',false) dann
GetValueNames( stringsTemp );//Lesen Sie den Namen jedes Elements aus, d. h. den Namen der DFÜ-Verbindung
CloseKey;
Ende;
//Im aktuellen System verfügbare DFÜ-Verbindungen
memo1.lines.add( '******************There are'+ IntToStr( stringsTemp.count ) im aktuellen System
+'Die verfügbaren DFÜ-Verbindungen sind wie folgt******************');
for intIndex := 0 to stringsTemp.count - 1 do
memo1.lines.add( stringsTemp.strings[ intIndex ] );
//Listen Sie die im Internet Explorer festgelegten Standardverbindungsnamen auf
wenn RegistryTemp.OpenKey('.DefaultRemoteAccess',false) dann
memo1.lines.add( 'Der im Internet Explorer festgelegte Standardverbindungsname ist' +
RegistryTemp.ReadString('InternetProfile') );
//Speicher freigeben
RegistryTemp.free;
stringsTemp.free;
Ende;
4. Wählen Sie über die angegebene DFÜ-Verbindung
Der Zweck der oben genannten drei Aufgaben besteht darin, einen DFÜ-Internetzugang herzustellen. Schauen wir uns nun an, wie eine bestimmte DFÜ-Verbindung für den DFÜ-Internetzugang verwendet wird. Am besten rufen Sie den DFÜ-Netzwerkdienst von WIN9X auf, der darin besteht, das vorgefertigte Programm unter WIN9X auszuführen.
In einem Delphi-Programm können Sie den folgenden Code verwenden, um einen DFÜ-Internetzugang zu implementieren:
winexec('rundll32.exe rnaui.dll,RnaDial 163',SW_SHOWNORMAL);
Der letzte Parameter „163“ in der Zeichenfolge ist der Name der DFÜ-Verbindung.
Im Folgenden finden Sie ein Beispiel für einen DFÜ-Internetzugang über eine angegebene DFÜ-Verbindung.
{DFÜ-Internetzugang über die angegebene DFÜ-Verbindung}
procedure TForm1.Button4Click(Sender: TObject);
var
strDialName: string;
beginnen
strDialName := '163';//Setzen Sie den Namen der DFÜ-Verbindung auf 163
memo1.lines.add( '********************Einwahlverbindung verwenden' + strDialName
+'Einwahl-Internetzugang realisieren******************');
winexec( PChar('rundll32.exe rnaui.dll,RnaDial ' + strDialName),SW_SHOWNORMAL);
Ende;
Das obige Programm wurde debuggt und unter PWIN98+Delphi3.0 weitergegeben.