|
||
株式会社ウィル | ||
|
HOME | 新着情報 | 製品一覧 | 受託開発 | Download | 購入方法 | トライアル | サポート | 会社案内 |
|
アドレス解決サンプル RESOLVE Ver1.0 | |||
|
|||
|
ホスト名、ドット区切りのIPアドレスと符号無し32ビットのIPアドレスをそれぞれ参照するプログラムです。
TCPIPOCXは、ホスト名をInetNameに、ドット区切りのIPアドレスをInetAddressに、符号無し32ビットのIPアドレスをInetIpに格納しています。三つのプロパティは連動していて、設定・参照することができます。どれか一つのプロパティを変更すると、ホスト名やサービス名の非同期検索が行い、他の2つのプロパティが変化します。検索が終わるとResolvedイベントが発生し、三つのプロパティは参照できるようになります。
▲TOPへ |
Option Explicit Dim Which%, Search% '数値を入力されたテキストボックスのインデックス Private Sub Command1_Click() Dim i% Search = Which Command1.Enabled = False Command2.Enabled = True Label4 = "検索中" Tcpip1.StopRequest 'ホスト名やサービス名の非同期検索を中止する '数値を入力されたテキストボックス以外のテキストを削除する For i = 0 To 2 If (Search <> i) Then Text1(i) = "" End If Next Select Case Search Case 0 'ホスト名を入力した場合,数値をInetNameに代入する Tcpip1.InetName = Text1(Search) Case 1 '16進数値を入力した場合、数値を長整数型 (Long) に変換し、InetIpに代入する Tcpip1.InetIp = CLng("&H" & Text1(Search)) Case 2 'ドットデシマルを入力した場合、数値をInetAddressに代入する Tcpip1.InetAddress = Text1(Search) End Select End Sub Private Sub Command2_Click() Text1(Search).SetFocus Command2.Enabled = False Tcpip1.StopRequest 'ホスト名やサービス名の非同期検索を中止する Label4 = "中止しました" End Sub 'フォームロード Private Sub Form_Load() Label6 = Tcpip1.copyright 'TCPIP.OCXの著作権表示 Label4.Left = 0 'フォームの大きさに応じてLabel4の位置と幅を調整する Label4.Top = ScaleHeight - Label4.Height Label4.Width = ScaleWidth End Sub 'InetName、InetAddress、InetIpのいずれかのプロパティにデータをセットしたときに、 'データの検索が終わるとResolvedが発生する Private Sub Tcpip1_Resolved(ByVal Ip As Long, ByVal Name As String, ByVal Address As String) Dim i% '数値を入力されたテキストボックスにフォーカスを移動する Text1(Search).SetFocus 'IPアドレスが見つからない場合、Ipに-1を返す If (Ip = -1) Then Label4 = "アドレスが見つかりませんでした" Else Label4 = "検索完了" If (Search <> 0) Then Text1(0) = Name 'ホスト名 If (Search <> 1) Then Text1(1) = Hex$(Ip) '4バイトのIP値 If (Search <> 2) Then Text1(2) = Address 'ドット区切りのIPアドレス End If Command1.Enabled = False Command2.Enabled = False End Sub Private Sub Text1_Change(Index As Integer) If (Which = Index) Then If (Text1(Index) <> "") Then Command1.Enabled = True Else Command1.Enabled = False End If End If End Sub Private Sub Text1_GotFocus(Index As Integer) Which = Index Text1(Index).SelStart = 0 Text1(Index).SelLength = Len(Text1(Index)) End Sub
|
(C) Copyright 2003 WILL Corporation. All rights reserved. |