.NET特集
 N1.Web関連
 Q1.VS2005自作Visualizer
 R1.OpenCV

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

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

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

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

サンプルダウンロード

Copyright © 2005 tadahiro higuchi. All Rights Reserved.