Remote Access Service
Remote Access Service(RAS)は電話回線を利用し、遠隔地から目的のNetworkに接続するためのサービスです。Networkには様々なプロトコルがありますがWindows95、98/NTの場合NetBeui IPX/SPX TCP/IPがサポートされています。RASにより接続しますと、速度を除いてはLANで接続されている状態と全く同じになります。この機能によりLAN用に作成されたアプリケーションがはるか遠方から利用できるようになります。
リモートアクセス.OCXの利用価値
ネットワークを利用したアプリケーションを作成する場合、その利用者にダイアルアップユーザーも少なからずいるのではないでしょうか? そのような時、作成するアプリケーションにダイアルアップ機能をつけたくなるものです。そんな時にこのコントロールは非常に簡単にその願いを実現してくれます。
また、ネットワークシステム管理者としてはなるべくサーバーの電話番号やユーザー名、パスワードを知らせたくないものですが、このコントロールを使った社内アプリケーションであれば、それらをソフト内に隠蔽できます。それにより、セキュリティーの向上や管理コストの削減といったメリットがあります。一般を対象としたFTPソフトから、限定された支店間データ通信ソフトなど様々な用途で利用でき、SOHO,モバイルコンピューティング、インターネット、イントラネット、DCOMなど最近のネットワークアーキテクチャーには必ずといって良いほど必要な機能でしょう。
リモートアクセス.OCXの概要
このコントロールはWin32APIのRASファンクションをラップ(包む)し、容易にRASの操作ができるようにしたコントロールです。APIでできることのほとんどがコントロールでも可能になっています。このコントロールは実行時には非表示のコントロールです。また、Windows95、98およびWindowsNT4.0での動作が保証されています。ヘルプはVBの中からF1キーによる表示に対応した使いやすいヘルプが付属します。
このコントロールでできること
ダイアルアップネットワークに登録されている接続先(エントリ)に対していくつかの値を変更して接続することが可能です。ユーザー名 パスワード 電話番号 ドメイン名 コールバック電話番号の5つの項目をプログラムから制御できます。ただしこの際にエントリーに登録された値を上書きするわけではなく、一時的に変更するだけです。すなわちユーザーが直接エントリのアイコンをダブルクリックした場合はエントリーそのものの値で実行されます。
そのほかでは、エントリリストの取得、エントリのプロパティーダイアログの表示、エントリ新規作成ダイアログの表示、エントリの接続状況(接続されているかそうでないか)の取得、自動リダイアル、などが行えます。
主なプロパティー、メソッド、イベント リスト
プロパティー | 内容 |
Active | エントリーが接続状態かどうかを返します |
EntryName | ItemIndexで指定されたエントリーの名前を返します |
ItemCount | ローカルコンピュータに登録されたリモートアクセスエントリの数を返します |
ItemIndex | 接続に使用するエントリー番号を指定します |
Password | 接続に使用するパスワードを指定します |
ReDialCancel | リダイアル待機状態を解除します |
ReDialInterval | リダイアルの間隔を秒で指定します |
ReDialTimes | 接続先がビジーの場合にリダイアルする回数を指定します |
SpCallBackNumber | 接続に使用するコールバック電話番号を指定します |
SpDomainName | 接続に使用するドメイン名を指定します |
SpTelephoneNumber | 接続に使用する電話番号を指定します |
UseSpValue | Spで始まるプロパティーの値を有効/無効にします |
UserName | 接続に使用するユーザー名を指定します |
メソッド | 内容 |
Connect | EntryNameプロパティーで示されるダイアル先へ接続します |
CreateEntry | エントリの作成ダイアログを表示します |
EditPhonebook | エントリのプロパティーダイアログを表示します |
HangUp | 電話回線を切断します |
Item | 指定した位置に対応するエントリーの名前を返します |
ReLoad | エントリリストを再読込みします |
イベント | 内容 |
Connected | 接続が完了したときに呼び出されます |
ReDialWaitStarted | リダイアル待機を開始したときに呼び出されます |
StatusChange | 接続状況が変化したときに呼び出されます |
StatusError | 接続がエラーになったときに呼び出されます |
使い方
ここでは簡単なダイアラのサンプルコードにてご説明します。
このサンプルの機能は、リストボックスにエントリリストを表示し、希望のエントリの選択と、接続、切断を可能とするものです。
1、リモートアクセスエントリーの取得
ダイアルアップネットワークのエントリーリストを簡単に取得することができます。ItemCountプロパティーには、OSに登録されたエントリ数が自動で取得されています。(ReLoadメソッドで明示的に再読込みもできます)itemメソッドでエントリー名を取得します。
以下の例はリストボックスにエントリーを表示します。
Private Sub Form_Load()
Dim i As Integer
For i = 0 To RasCtrl1.ItemCount - 1 'エントリー数分ループします。
List1.AddItem RasCtrl1.Item(i) 'リストに加えます
Next i
End Sub
2、ダイアルするエントリの選択
ダイアルするエントリはItemIndexプロパティーで指定します。
以下の例はリストボックスで選択された番号をItemIndexプロパティーにセットします。
Private Sub List1_Click()
RasCtrl1.ItemIndex = List1.ListIndex
End Sub
3、ダイアルする
Private Sub Command1_Click()
RasCtrl1.UserName = Text1 'ユーザー名をセットします
RasCtrl1.Password = Text2 'パスワードをセットします
RasCtrl1.Connect ‘接続します
End Sub
4、切断する
Private Sub Command2_Click()
RasCtrl1.HangUp
End Sub
ここでコードは割愛しますが、Connectメソッドは非同期で実行されます。すなわち発行したらすぐに制御が戻ります。その後、StatusChangeイベントにて接続状況が通知されます。
そして最後に接続が完了したことを知らせるConnectedイベントが発行されますので、このイベント内で接続後の処理を記述します。また、接続できずにエラーになった場合はStattusErrorイベントにてエラーが通知されます。