El acceso telefónico a Internet a través de MODEM sigue siendo la forma en que la mayoría de los internautas eligen acceder a Internet. Si podemos habilitar conexiones de acceso telefónico en nuestras aplicaciones (como la función de acceso telefónico automático en el programa del navegador IE), sin duda será más conveniente para nuestros usuarios de software (no es necesario cambiar de aplicación y ejecutar redes de acceso telefónico) y mejorar la facilidad de uso de nuestro software, mejorando así la competitividad del software.
En WIN9X, si está instalada la red de acceso telefónico, habrá dos bibliotecas de administración de red de acceso telefónico, RasApi32.DLL y RasApi16.DLL, en el directorio del sistema Sistema del sistema WINDOWS. Podemos usar las funciones que contienen para crear y. modificar las conexiones de acceso telefónico y el acceso telefónico a Internet mediante una conexión de acceso telefónico designada.
1. Cree una nueva conexión de acceso telefónico
Cuando se ha establecido una conexión de acceso telefónico en el sistema WIN9X, se puede utilizar la conexión de acceso telefónico existente. Si no hay una conexión de acceso telefónico, deberá crear una nueva conexión de acceso telefónico. La función correspondiente se proporciona en RasAPI, su nombre de función es RasCreatePhonebookEntryA y el prototipo de función es:
función RasCreatePhonebookEntryA( hwnd : THandle;lpszPhonebook: pchar ) : DWord;
stdcall; {ubicado en la sección de interfaz}
función RasCreatePhonebookEntryA; externa 'Rasapi32.dll'; {ubicada en la sección de implementación}
parámetro:
hwnd (THandle): el identificador de la ventana principal de la nueva ventana de conexión de acceso telefónico, que puede ser el identificador de TForm o la tabla NIL de Windows Desktop (DeskTop);
lpszPhonebook (pchar): nombre de la agenda telefónica, no tiene efecto en Win9X, se puede configurar en una cadena vacía
Valor de retorno de la función:
0 indica ejecución exitosa; de lo contrario, es un error.
A continuación se muestra un ejemplo de cómo crear una nueva conexión de acceso telefónico.
{Crear una nueva conexión de acceso telefónico}
Procedimiento TForm1.Button1Click(Remitente: TObject);
var
dwResultado: DWORD;
comenzar
//Crea una nueva conexión de acceso telefónico en la ventana actual
dwResult := RasCreatePhonebookEntryA( identificador, '' );
si dwResult = 0 entonces
memo1.lines.add('¡Nueva conexión de acceso telefónico exitosa!')
demás
memo1.lines.add('¡Error en la nueva conexión de acceso telefónico!')
fin;
2. Modificar las propiedades de la conexión de acceso telefónico especificada.
Si el usuario necesita modificar los atributos de la conexión de acceso telefónico, como el número de teléfono, el código de país y área, el método de conexión, el tipo de servidor, etc., puede usar la función RasAPI para lograrlo. El nombre de la función es RasEditPhonebookEntryA. el prototipo de función es:
función RasEditPhonebookEntryA( hwnd: THandle; lpszPhonebook: pchar;
lpszEntryName: pchar): DWORD;stdcall; {ubicado en la parte de la interfaz}
función RasEditPhonebookEntryA; externa 'Rasapi32.dll'; {ubicada en la sección de implementación}
parámetro:
hwnd (THandle): el identificador de la ventana principal de la nueva ventana de conexión de acceso telefónico, que puede ser el identificador de TForm, expresado como NIL
Escritorio de Windows(Escritorio superior)
lpszPhonebook (pchar): nombre de la agenda telefónica, no tiene ningún efecto en Win9X, se puede configurar en una cadena vacía
lpszEntryName: (pchar): el nombre de la conexión de acceso telefónico que se modificará, como '163', '169', etc.
Valor de retorno de la función:
0 indica ejecución exitosa; de lo contrario, es un error.
El siguiente es un ejemplo de cómo modificar las propiedades de una conexión de acceso telefónico especificada.
{Modificar las propiedades de conexión de acceso telefónico especificadas}
procedimiento TForm1.Button2Click (Remitente: TObject);
var
dwResultado: DWORD;
strDialName: cadena;
comenzar
strDialName := '163';//Establece el nombre de la conexión de acceso telefónico a 163
//Especificar y modificar las propiedades de la conexión de acceso telefónico en la ventana actual
dwResult := RasEditPhonebookEntryA( identificador, '', PChar( strDialName ) );
si dwResult = 0 entonces
memo1.lines.add('Modificar conexión de acceso telefónico' + strDialName + '¡Éxito!')
demás
memo1.lines.add('Modificar conexión de acceso telefónico' + strDialName + '¡Error!')
fin;
3. Obtenga los nombres de las conexiones de acceso telefónico disponibles en el sistema actual.
Para que el usuario elija marcar usando una conexión de acceso telefónico, necesitamos obtener el nombre de la conexión de acceso telefónico que se ha establecido en el sistema. Después de establecer una conexión de acceso telefónico, WIN9X escribe el nombre y los atributos de la conexión de acceso telefónico en el registro. Podemos obtener los nombres de las conexiones de acceso telefónico disponibles en el sistema actual y el nombre de conexión predeterminado establecido en Internet Explorer desde el registro. .
En HKEY_USERS.DefaultRemoteaccessAddresses en el registro, se enumeran los nombres de las conexiones de acceso telefónico que se han establecido en la red de acceso telefónico y la configuración de sus atributos. El nombre de cada elemento es el nombre de la conexión de acceso telefónico disponible; de cada elemento es el nombre de la configuración de propiedades de la conexión de acceso telefónico disponible. Solo necesitamos leer el nombre de cada proyecto para obtener los nombres de las conexiones de acceso telefónico disponibles en el sistema actual.
Si el nombre de conexión predeterminado está configurado en Internet Explorer (Ver => Opciones de Internet => Conexión => Conexión => Configuración => Usar la siguiente conexión de red de acceso telefónico), entonces en HKEY_USERS.DefaultRemoteAccess en el registro, hay una cadena escriba Valor clave, el nombre del valor clave es InternetProfile y su valor es el nombre de conexión predeterminado establecido en Internet Explorer.
El siguiente es un ejemplo de cómo obtener los nombres de las conexiones de acceso telefónico disponibles en el sistema actual.
{Tenga en cuenta que la unidad de Registro se agrega a Usos para operar el registro}
{Obtener los nombres de las conexiones de acceso telefónico disponibles en el sistema actual}
procedimiento TForm1.Button3Click(Remitente: TObject);
var
registroTemp: TRegistry;
stringsTemp: TSstringlist;
intÍndice: entero;
comenzar
registroTemp := TRegistry.Create;
stringsTemp := TStringlist.Create;
con registroTemp hacer
comenzar
RootKey := HKEY_USERS;//La clave raíz está configurada en HKEY_USERS
//Si hay subclaves.DefaultRemoteAccessAddresses
si OpenKey('.DefaultRemoteAccessAddresses',false) entonces
GetValueNames( stringsTemp );//Lee el nombre de cada elemento, es decir, el nombre de la conexión de acceso telefónico
CerrarClave;
fin;
//Conexiones de acceso telefónico disponibles en el sistema actual
memo1.lines.add( '******************Hay'+ IntToStr( stringsTemp.count ) en el sistema actual
+'Las conexiones de acceso telefónico disponibles son las siguientes******************');
para intIndex: = 0 a stringsTemp.count - 1 hacer
memo1.lines.add(stringsTemp.strings[intIndex]);
//Enumera los nombres de conexión predeterminados establecidos en Internet Explorer
si registroTemp.OpenKey('.DefaultRemoteAccess',false) entonces
memo1.lines.add( 'El nombre de conexión predeterminado establecido en Internet Explorer es' +
registroTemp.ReadString('InternetProfile') );
//liberar memoria
registroTemp.free;
stringsTemp.libre;
fin;
4. Marque utilizando la conexión de acceso telefónico especificada
El propósito de las tres tareas anteriores es el acceso telefónico a Internet. Ahora echemos un vistazo a cómo utilizar una conexión de acceso telefónico designada para el acceso telefónico a Internet. La mejor manera es llamar al servicio de red de acceso telefónico de WIN9X, que consiste en ejecutar el programa listo para usar en WIN9X.
En un programa Delphi, puede utilizar el siguiente código para implementar el acceso telefónico a Internet:
winexec('rundll32.exe rnaui.dll,RnaDial 163',SW_SHOWNORMAL);
El último parámetro "163" de la cadena es el nombre de la conexión de acceso telefónico.
El siguiente es un ejemplo de acceso telefónico a Internet utilizando una conexión telefónica específica.
{Acceso telefónico a Internet utilizando la conexión telefónica especificada}
procedimiento TForm1.Button4Click (Remitente: TObject);
var
strDialName: cadena;
comenzar
strDialName := '163';//Establece el nombre de la conexión de acceso telefónico a 163
memo1.lines.add( '****************Usar conexión de acceso telefónico' + strDialName
+'Realizar acceso telefónico a Internet******************');
winexec( PChar('rundll32.exe rnaui.dll,RnaDial ' + strDialName),SW_SHOWNORMAL);
fin;
El programa anterior fue depurado y aprobado bajo PWIN98+Delphi3.0.