モデムを介したダイヤルアップ インターネット アクセスは、依然としてほとんどの個人ネチズンがインターネットにアクセスする方法として選択しています。アプリケーションでダイヤルアップ接続 (IE ブラウザ プログラムの自動ダイヤルアップ機能など) を有効にできれば、ソフトウェア ユーザーにとって間違いなく便利になります (アプリケーションを切り替えてダイヤルアップ ネットワークを実行する必要がなくなります)。ソフトウェアの使いやすさを向上させ、ソフトウェアの競争力を向上させます。
WIN9X では、ダイヤルアップ ネットワークがインストールされている場合、WINDOWS システムのシステム ディレクトリ System の下に 2 つのダイヤルアップ ネットワーク管理ライブラリ、RasApi32.DLL と RasApi16.DLL が存在し、それらの関数を使用して作成することができます。ダイヤルアップ接続の変更、および指定されたダイヤルアップ接続を使用したダイヤルアップ インターネット アクセス。
1. 新しいダイヤルアップ接続を作成します
WIN9X システムでダイヤルアップ接続が確立されている場合は、既存のダイヤルアップ接続を使用できます。ダイヤルアップ接続がない場合は、新しいダイヤルアップ接続を作成する必要があります。対応する関数は RasAPI で提供されており、その関数名は RasCreatePhonebookEntryA で、関数のプロトタイプは次のとおりです。
function RasCreatePhonebookEntryA( hwnd : THandle;lpszPhonebook: pchar ) : DWord;
stdcall; {インターフェイスセクションにあります}
関数 RasCreatePhonebookEntryA; 外部 'Rasapi32.dll';{ 実装セクションにあります}
パラメータ:
hwnd (THandle): 新しいダイヤルアップ接続ウィンドウの親ウィンドウのハンドル。TForm または NIL テーブルのハンドルになります。
lpszPhonebook (pchar): 電話帳名。Win9X では効果がなく、空の文字列に設定できます。
関数の戻り値:
0 は実行が成功したことを示し、それ以外の場合はエラーです。
以下は、新しいダイヤルアップ接続を作成する例です。
{新しいダイヤルアップ接続を作成する}
手順 TForm1.Button1Click(送信者: TObject);
変数
dw結果: DWORD;
始める
// 現在のウィンドウで新しいダイヤルアップ接続を作成します
dwResult := RasCreatePhonebookEntryA( ハンドル, '' );
dwResult = 0 の場合
memo1.lines.add('新しいダイヤルアップ接続が成功しました!')
それ以外
memo1.lines.add('新しいダイヤルアップ接続に失敗しました!')
終わり;
2. 指定したダイヤルアップ接続のプロパティを変更します。
ユーザーは、電話番号、国番号、市外局番、接続方法、サーバーの種類などのダイヤルアップ接続の属性を変更する必要がある場合、RasAPI 関数を使用してこれを実現できます。関数名は RasEditPhonebookEntryA です。関数のプロトタイプは次のとおりです。
function RasEditPhonebookEntryA( hwnd : THandle; lpszPhonebook: pchar;
lpszEntryName: pchar ) : DWORD;stdcall {インターフェイス部分にあります}
function RasEditPhonebookEntryA; 外部 'Rasapi32.dll';{ 実装セクションにあります}
パラメータ:
hwnd (THandle): 新しいダイヤルアップ接続ウィンドウの親ウィンドウのハンドル。TForm のハンドルにすることができ、NIL として表現されます。
Windowsデスクトップ(デスクトップ)
lpszPhonebook (pchar): 電話帳名。Win9X では効果がなく、空の文字列に設定できます。
lpszEntryName: (pchar): 変更するダイヤルアップ接続の名前 (「163」、「169」など)。
関数の戻り値:
0 は実行が成功したことを示し、それ以外の場合はエラーです。
以下は、指定されたダイヤルアップ接続のプロパティを変更する例です。
{指定されたダイヤルアップ接続プロパティを変更する}
プロシージャ TForm1.Button2Click(送信者: TObject);
変数
dw結果: DWORD;
strDialName : 文字列;
始める
strDialName := '163';//ダイヤルアップ接続の名前を 163 に設定します
//現在のウィンドウでダイヤルアップ接続のプロパティを指定および変更します
dwResult := RasEditPhonebookEntryA( ハンドル, '', PChar( strDialName ) );
dwResult = 0 の場合
memo1.lines.add('ダイヤルアップ接続を変更' + strDialName + '成功!')
それ以外
memo1.lines.add('ダイヤルアップ接続を変更' + strDialName + '失敗!')
終わり;
3. 現在のシステムで使用可能なダイヤルアップ接続名を取得します。
ユーザーがダイヤルアップ接続を使用してダイヤルすることを選択するには、システム内で確立されているダイヤルアップ接続の名前を取得する必要があります。ダイヤルアップ接続を確立すると、WIN9X はダイヤルアップ接続の名前と属性をレジストリに書き込みます。現在のシステムで使用できるダイヤルアップ接続名と、Internet Explorer に設定されているデフォルトの接続名をレジストリから取得できます。 。
レジストリの HKEY_USERS.DefaultRemoteaccessAddresses には、ダイヤルアップ ネットワークで確立されているダイヤルアップ接続の名前とその属性設定がリストされます。各項目の名前は、使用可能なダイヤルアップ接続の名前です。各項目の は、使用可能なダイヤルアップ接続のプロパティ設定の名前です。各プロジェクトの名前を読み取るだけで、現在のシステムで使用できるダイヤルアップ接続名を取得できます。
Internet Explorer でデフォルトの接続名が設定されている場合 (表示 => インターネット オプション => 接続 => 接続 => 設定 => 次のダイヤルアップ ネットワーク接続を使用する)、レジストリの HKEY_USERS.DefaultRemoteAccess の下に文字列があります。 type Key value、キー値の名前は InternetProfile、その値は Internet Explorer に設定されているデフォルトの接続名です。
以下は、現在のシステムで使用可能なダイヤルアップ接続の名前を取得する例です。
{レジストリを操作するための用途にレジストリユニットが追加されることに注意してください}
{現在のシステムで利用可能なダイヤルアップ接続名を取得する}
プロシージャ TForm1.Button3Click(送信者: TObject);
変数
registryTemp : TRegistry;
stringsTemp : TStringlist;
intIndex : 整数;
始める
registryTemp := TRegistry.Create;
stringsTemp := TStringlist.Create;
registryTemp を使用して行う
始める
RootKey := HKEY_USERS;//ルートキーは HKEY_USERS に設定されます
//サブキーがある場合.DefaultRemoteAccessAddresses
if OpenKey('.DefaultRemoteAccessAddresses',false) then
GetValueNames( stringsTemp );//各項目の名前、つまりダイヤルアップ接続名を読み出します。
閉じるキー;
終わり;
//現在のシステムで利用可能なダイヤルアップ接続
memo1.lines.add( '*******************現在のシステムには'+ IntToStr( stringsTemp.count ) があります
+'利用可能なダイヤルアップ接続は次のとおりです******************');
intIndex := 0 から stringsTemp.count - 1 の場合
memo1.lines.add( stringsTemp.strings[ intIndex ] );
//Internet Explorer に設定されているデフォルトの接続名をリストします。
if registryTemp.OpenKey('.DefaultRemoteAccess',false) then
memo1.lines.add( 'Internet Explorer に設定されているデフォルトの接続名は' +
registryTemp.ReadString('InternetProfile') );
//メモリを解放する
registryTemp.free;
文字列Temp.free;
終わり;
4. 指定されたダイヤルアップ接続を使用してダイヤルします。
上記の 3 つのタスクの目的は、ダイヤルアップ インターネット アクセスです。次に、指定されたダイヤルアップ接続を使用してダイヤルアップ インターネット アクセスを行う方法を見てみましょう。最善の方法は、WIN9X のダイヤルアップ ネットワーク サービスを呼び出すことです。つまり、WIN9X 上で既製のプログラムを実行します。
Delphi プログラムでは、次のコードを使用してダイヤルアップ インターネット アクセスを実装できます。
winexec('rundll32.exe rnaui.dll,RnaDial 163',SW_SHOWNORMAL);
文字列の最後のパラメータ「163」は、ダイヤルアップ接続の名前です。
以下は、指定されたダイヤルアップ接続を使用したダイヤルアップ インターネット アクセスの例です。
{指定されたダイヤルアップ接続を使用したダイヤルアップ インターネット アクセス}
プロシージャ TForm1.Button4Click(送信者: TObject);
変数
strDialName : 文字列;
始める
strDialName := '163';//ダイヤルアップ接続の名前を 163 に設定します
memo1.lines.add( '****************ダイヤルアップ接続を使用' + strDialName
+'ダイヤルアップ インターネット アクセスを実現******************');
winexec( PChar('rundll32.exe rnaui.dll,RnaDial ' + strDialName),SW_SHOWNORMAL);
終わり;
上記のプログラムはデバッグされ、PWIN98+Delphi3.0 で渡されました。