모뎀을 통한 전화 접속 인터넷 액세스는 여전히 대부분의 개인 네티즌이 인터넷에 액세스하기 위해 선택하는 방식입니다. 애플리케이션에서 전화 접속 연결(예: IE 브라우저 프로그램의 자동 전화 접속 기능)을 활성화할 수 있다면 소프트웨어 사용자에게는 의심할 여지 없이 더 편리해질 것입니다(애플리케이션을 전환하거나 전화 접속 네트워크를 실행할 필요가 없음). 소프트웨어의 친화성을 향상시켜 소프트웨어의 경쟁력을 향상시킵니다.
WIN9X에서 전화 접속 네트워킹이 설치되면 WINDOWS 시스템의 시스템 디렉터리 System 아래에 두 개의 전화 접속 네트워크 관리 라이브러리인 RasApi32.DLL과 RasApi16.DLL이 있습니다. 전화 접속 연결을 수정하고 지정된 전화 접속 연결을 사용하여 전화 접속 인터넷 액세스를 수정합니다.
1. 새 전화 접속 연결 만들기
WIN9X 시스템에서 전화 접속 연결이 설정되면 기존 전화 접속 연결을 사용할 수 있습니다. 전화 접속 연결이 없으면 새 전화 접속 연결을 만들어야 합니다. 해당 기능은 RasAPI에서 제공되며 해당 기능 이름은 RasCreatePhonebookEntryA이고 기능 프로토타입은 다음과 같습니다.
함수 RasCreatePhonebookEntryA( hwnd : THandle;lpszPhonebook: pchar ) : DWord;
stdcall; {인터페이스 섹션에 위치}
function RasCreatePhonebookEntryA; 외부 'Rasapi32.dll';{ 구현 섹션에 있음}
매개변수:
hwnd (THandle): 새 전화 접속 연결 창의 상위 창 핸들. TForm 또는 NIL 테이블 핸들일 수 있습니다.
lpszPhonebook(pchar): 전화번호부 이름, Win9X에서는 효과가 없으며 빈 문자열로 설정할 수 있습니다.
함수 반환 값:
0은 성공적인 실행을 나타내고, 그렇지 않으면 오류입니다.
다음은 새로운 전화 접속 연결을 생성하는 예입니다.
{새 전화 접속 연결 만들기}
PROcedure TForm1.Button1Click(Sender: TObject);
var
dw결과: DWORD;
시작하다
//현재 창에서 새로운 전화 접속 연결을 생성합니다.
dwResult := RasCreatePhonebookEntryA( 핸들, '' );
dwResult = 0이면
memo1.lines.add('새 전화 접속 연결 성공!')
또 다른
memo1.lines.add('새 전화 접속 연결에 실패했습니다!')
끝;
2. 지정된 전화 접속 연결의 속성을 수정합니다.
사용자가 전화번호, 국가 및 지역 번호, 연결 방법, 서버 유형 등과 같은 전화 접속 연결 속성을 수정해야 하는 경우 RasAPI 함수를 사용하여 이를 달성할 수 있습니다. 함수 이름은 RasEditPhonebookEntryA입니다. 함수 프로토타입은 다음과 같습니다:
함수 RasEditPhonebookEntryA(hwnd: THandle; lpszPhonebook: pchar;
lpszEntryName: pchar ) : DWORD;stdcall {인터페이스 부분에 위치}
function RasEditPhonebookEntryA; 외부 'Rasapi32.dll';{ 구현 섹션에 있음}
매개변수:
hwnd (THandle): 새 전화 접속 연결 창의 상위 창 핸들로, NIL로 표현되는 TForm의 핸들일 수 있습니다.
Windows 데스크탑(DeskTop)
lpszPhonebook(pchar): 전화번호부 이름, Win9X에서는 효과가 없으며 빈 문자열로 설정할 수 있습니다.
lpszEntryName: (pchar): '163', '169' 등과 같이 수정할 전화 접속 연결의 이름입니다.
함수 반환 값:
0은 성공적인 실행을 나타내고, 그렇지 않으면 오류입니다.
다음은 지정된 전화 접속 연결의 속성을 수정하는 예입니다.
{지정된 전화 접속 연결 속성 수정}
절차 TForm1.Button2Click(Sender: TObject);
var
dw결과: DWORD;
strDialName : 문자열;
시작하다
strDialName := '163';//전화 접속 연결 이름을 163으로 설정합니다.
//현재 창에서 전화 접속 연결의 속성을 지정하고 수정합니다.
dwResult := RasEditPhonebookEntryA(handle, '', PChar( strDialName ) );
dwResult = 0이면
memo1.lines.add('전화 접속 연결 수정' + strDialName + '성공!')
또 다른
memo1.lines.add('전화 접속 연결 수정' + strDialName + '실패했습니다!')
끝;
3. 현재 시스템에서 사용 가능한 전화 접속 연결 이름을 얻습니다.
사용자가 전화 접속 연결을 사용하여 전화 접속을 선택하려면 시스템에 설정된 전화 접속 연결의 이름을 가져와야 합니다. 전화 접속 연결을 설정한 후 WIN9X는 전화 접속 연결의 이름과 속성을 레지스트리에 기록합니다. 현재 시스템에서 사용할 수 있는 전화 접속 연결 이름과 Internet Explorer에 설정된 기본 연결 이름을 레지스트리에서 얻을 수 있습니다. .
레지스트리의 HKEY_USERS.DefaultRemoteaccessAddresses에는 전화 접속 네트워크에 설정된 전화 접속 연결 이름과 해당 속성 설정이 나열됩니다. 각 항목의 이름은 사용 가능한 전화 접속 연결의 이름입니다. 각 항목의 는 사용 가능한 전화 접속 연결 속성 설정의 이름입니다. 현재 시스템에서 사용할 수 있는 전화 접속 연결 이름을 얻으려면 각 프로젝트의 이름만 읽으면 됩니다.
Internet Explorer에서 기본 연결 이름이 설정된 경우(보기 => 인터넷 옵션 => 연결 => 연결 => 설정 => 다음 전화 접속 네트워크 연결 사용) 레지스트리의 HKEY_USERS.DefaultRemoteAccess 아래에 문자열이 있습니다. Key value를 입력하면, 키 값 이름은 InternetProfile이고, 값은 Internet Explorer에 설정된 기본 연결 이름입니다.
다음은 현재 시스템에서 사용 가능한 전화 접속 연결 이름을 알아내는 예이다.
{레지스트리 운영을 위한 용도에 레지스트리 단위가 추가되어 있으니 참고하세요}
{현재 시스템에서 사용 가능한 전화 접속 연결 이름 가져오기}
절차 TForm1.Button3Click(Sender: TObject);
var
RegistryTemp : TRegistry;
stringsTemp : TStringlist;
intIndex : 정수;
시작하다
RegistryTemp := TRegistry.Create;
stringsTemp := TStringlist.Create;
RegistryTemp를 사용하여
시작하다
RootKey := HKEY_USERS;//루트 키는 HKEY_USERS로 설정됩니다.
//하위 키가 있는 경우.DefaultRemoteAccessAddresses
if OpenKey('.DefaultRemoteAccessAddresses',false) 그러면
GetValueNames( stringsTemp );//각 항목의 이름, 즉 전화 접속 연결 이름을 읽어옵니다.
닫기키;
끝;
//현재 시스템에서 사용 가능한 전화 접속 연결
memo1.lines.add( '******************현재 시스템에는 '+ IntToStr( stringsTemp.count )이 있습니다.
+'사용 가능한 전화 접속 연결은 다음과 같습니다******************');
intIndex := 0 ~ stringsTemp.count - 1 do
memo1.lines.add( stringsTemp.strings[ intIndex ] );
//Internet Explorer에 설정된 기본 연결 이름을 나열합니다.
if RegistryTemp.OpenKey('.DefaultRemoteAccess',false) 다음
memo1.lines.add( 'Internet Explorer에 설정된 기본 연결 이름은 다음과 같습니다.' +
RegistryTemp.ReadString('InternetProfile') );
//메모리 해제
RegistryTemp.free;
stringsTemp.free;
끝;
4. 지정된 전화 접속 연결을 사용하여 전화를 겁니다.
위 세 가지 작업의 목적은 전화 접속 인터넷 액세스입니다. 이제 지정된 전화 접속 연결을 사용하여 전화 접속 인터넷 액세스를 수행하는 방법을 살펴보겠습니다. 가장 좋은 방법은 WIN9X의 전화 접속 네트워크 서비스를 호출하는 것인데, 이는 WIN9X에서 미리 만들어진 프로그램을 실행하는 것입니다.
Delphi 프로그램에서는 다음 코드를 사용하여 전화 접속 인터넷 액세스를 구현할 수 있습니다.
winexec('rundll32.exe rnaui.dll,RnaDial 163',SW_SHOWNORMAL);
문자열의 마지막 매개변수 "163"은 전화 접속 연결의 이름입니다.
다음은 지정된 전화 접속 연결을 사용한 전화 접속 인터넷 액세스의 예입니다.
{지정된 전화 접속 연결을 사용하여 전화 접속 인터넷 액세스}
절차 TForm1.Button4Click(Sender: TObject);
var
strDialName : 문자열;
시작하다
strDialName := '163';//전화 접속 연결 이름을 163으로 설정합니다.
memo1.lines.add( '****************전화 접속 연결 사용' + strDialName
+'전화접속 인터넷 접속 실현******************');
winexec( PChar('rundll32.exe rnaui.dll,RnaDial ' + strDialName),SW_SHOWNORMAL);
끝;
위 프로그램은 디버깅되었으며 PWIN98+Delphi3.0에서 전달되었습니다.