|
Remote Access Service の略称
RASといっても、ここでは、ダイアルアップネットワークエントリを取り上げています。
RAS関連のAPI関数は、以外と知られていませんでした。私の所に、数多く質問も寄せられました。
現在では、インターネットをするのは、常識になり、RASの使用頻度も多くなり、VB から制御も行わなくてはならない
状況があるかもしれません、しかし、VB からの RAS の制御などヘルプを探してもありません、
サードパーティの ActiveX を使用すれば、簡単に行えるのでしょうが、ActiveX を買う余裕なんて私にはありません。^^;
そこで、API関数の解読を行う事にしました。最終的には、クラスにして、お金の無い VB 開発者の力になれれば...
と思います。また、注意する点は、OS により、構造体のサイズが違う点です。
Windows95,WindowsNTでは、同じサイズの構造体で動作する関数もあれば、動作しない関数もあり、
これら、両 OS を意識した、開発を推奨します。
|
エントリの列挙を行い、各エントリの変更ダイアログ(Windows規定)を表示します。
また、エントリの登録ダイアログ(Windows規定)、エントリの削除が行えます。
RasEnumEntries, RasEditPhonebookEntry, RasCreatePhonebookEntry, RasDeleteEntry, GetVersionEx

サンプルダウンロード
|
ユーザー名、パスワード、コールバック番号、などの取得、設定を行います。
RasGetEntryDialParams, RasSetEntryDialParams, RasGetErrorString
ここで、取得した電話番号は、エントリの登録時に設定した電話番号ではありませんので、
この電話番号を、接続先の電話番号と間違わないようにして下さい。
取得したユーザー名、パスワードなどは、第四弾で使用します。

サンプルダウンロード
|
エントリの登録時に設定した、国番号、市外局番、電話番号、 TCP/IP設定、スクリプト、プロトコルなどの取得、
設定を行います。また、国番号の対応した国名称を RasGetCountryInfo 関数を使用して取得します。
サンプルの画像のIPアドレスボックスは、ラベル、テキストボックスで作ってます。^^;他に方法があるけど...
RasGetEntryProperties, RasSetEntryProperties, RasGetCountryInfo
ここで使用している構造体は、API関数にそのまま渡すことができないので、一度バイト配列に格納してから、
API関数に渡します。API関数定義時の型は、Any 型です。
RasGetCountryInfo 関数を使用して国名称を取得する場合の処理は、ちょっと難しいです。(苦労した^^;)
このサンプルで行っている処理が正規の方法とは限りません。
新規エントリを登録する場合に、設定できるデバイス(RASENTRY構造体の szDeviceType、szDeviceName メンバ)
を取得するには、RasEnumDevices 関数を使用してデバイスを列挙して下さい。

サンプルダウンロード
|
1〜3までを応用して、接続から切断までの一連の処理を行います。
1、3、ほとんど応用していないのですが、細かい事は言わない事に...^^;
また、接続時のステータス(ダイヤル中、ユーザー名、パスワード確認中)を取得し、表示します。
RasDial, RasHangUp, RasGetConnectStatus, RasEnumConnections, Sleep
ステータスの取得には、サブクラス化を行って確認する方法と、AddressOfを使用してのプロシージャでの確認方法があります。
本サンプルでは、サブクラス化を行ってステータスの取得は行っていません。タイマーイベントで取得を行っています。

サンプルダウンロード
|
|