NSDClientCount メンバ
複数クライアント(同一LAN、同一ドメイン、同一プロトコルを使用している)で実行している自分自身の数を取得します。
●コンストラクタ
名前 説明 NSDClientCount NSDClientCountを初期化します。
●プロパティの一覧
名前 説明 TimerEnabled タイマーのEnabledを設定します。 TimerInterval タイマーの間隔を設定します。 EndFlag 終了通知の処理方法を設定します。
●メソッドの一覧
名前 引数 戻り値 説明 Dispose なし なし リソースの解放を行います。 Init_ClientCount ( String , Boolean , [NSDClientCount_EventHandler] , [String] ) Boolean型 初期化処理を行います。 ClientCountCheck ( ArrayList ) Boolean型 同一プログラムの起動確認を行います。 GetClientList ( ArrayList , Integer ) Boolean型 同一プログラム起動のコンピュータリストを取得します。
●イベントの一覧
名前 引数 戻り値 説明 NSDCCTimerTick ( Object , NSDClientCountEventArgs ) Boolean型 定期的に発生するイベント。
●NSDClientCountコンストラクタの説明
構文:Public Sub New()
使用法:Dim Cls_NSDCC As New NSDClientCount
引数:なし。
使用例:
Public Class Form1 Dim Cls_NSDCC As New NSDClientCount : End Class
●NSDClientCountプロパティの説明
名前:TimerEnabled
構文:Public Property TimerEnabled() As Boolean
機能:タイマーのEnabledを設定します。
Set値:タイマーのEnabledをセットします。
Get値:タイマーのEnabledを取得します。
使用例:
Public Class Form1 Dim ClsPrv_NSDCC As NSDClientCount = Nothing Private Sub Form1_Load( sender As System.Object, _ e As System.EventArgs _ ) Handles MyBase.Load Try ClsPrv_NSDCC = New NSDClientCount Dim Str_MailSlotName As String = "Test\Client\Count\Check" If Not ClsPrv_NSDCC.Init_ClientCount(Str_MailSlotName, _ True, _ AddressOf NSDCCTimerTick) Then MsgBox( "初期化に失敗しました。" & _ ControlChars.CrLf & _ "コンピュータを再起動してください。") End End If Catch ex As Exception End Try End Sub Private Sub Form1_FormClosed( sender As Object, _ e As System.Windows.Forms.FormClosedEventArgs _ ) Handles Me.FormClosed Try ' 解放処理。 If Not (ClsPrv_NSDCC Is Nothing) Then ClsPrv_NSDCC.Dispose() ClsPrv_NSDCC = Nothing End If Catch ex As Exception End Try End Sub Private Sub NSDCCTimerTick( ByVal sender As Object, _ ByVal e As NSDClientCount.NSDClientCountEventArgs) Try ' タイマーを停止します。 CType(sender, NSDClientCount).TimerEnabled = False ' コンピュータ名をセットします。 With Me.ListBox1 .Items.Clear() If Not (e.List Is Nothing) Then For Int_Loop As Integer = 0 to e.List.Count - 1 .Items.Add(e.List.Item(Int_Loop)) Next End If End With Catch ex As Exception Finally ' タイマーを開始します。 CType(sender, NSDClientCount).TimerEnabled = True End Try End Sub End Class
名前:TimerInterval
構文:Public Property TimerInterval() As Integer
機能:タイマーの間隔を設定します。
Set値:タイマーの間隔(ミリ秒(ms)単位 1000ms=1秒)をセットします。
Get値:タイマーの間隔(ミリ秒(ms)単位 1000ms=1秒)を取得します。
使用例:
Public Class Form1 Dim ClsPrv_NSDCC As NSDClientCount = Nothing Private Sub Form1_Load( sender As System.Object, _ e As System.EventArgs _ ) Handles MyBase.Load Try ClsPrv_NSDCC = New NSDClientCount Dim Str_MailSlotName As String = "Test\Client\Count\Check" If Not ClsPrv_NSDCC.Init_ClientCount(Str_MailSlotName, _ True, _ AddressOf NSDCCTimerTick) Then MsgBox( "初期化に失敗しました。" & _ ControlChars.CrLf & _ "コンピュータを再起動してください。") End End If ' 5秒間隔で確認します。 ClsPrv_NSDCC.TimerInterval = 5000 Catch ex As Exception End Try End Sub Private Sub Form1_FormClosed( sender As Object, _ e As System.Windows.Forms.FormClosedEventArgs _ ) Handles Me.FormClosed Try ' 解放処理。 If Not (ClsPrv_NSDCC Is Nothing) Then ClsPrv_NSDCC.Dispose() ClsPrv_NSDCC = Nothing End If Catch ex As Exception End Try End Sub Private Sub NSDCCTimerTick( ByVal sender As Object, _ ByVal e As NSDClientCount.NSDClientCountEventArgs) Try ' タイマーを停止します。 CType(sender, NSDClientCount).TimerEnabled = False ' コンピュータ名をセットします。 With Me.ListBox1 .Items.Clear() If Not (e.List Is Nothing) Then For Int_Loop As Integer = 0 to e.List.Count - 1 .Items.Add(e.List.Item(Int_Loop)) Next End If End With Catch ex As Exception Finally ' タイマーを開始します。 CType(sender, NSDClientCount).TimerEnabled = True End Try End Sub End Class
名前:EndFlag
構文:Public Property EndFlag() As Boolean
機能:終了通知の処理方法を設定します。
Set値:True = 終了通知でコンピュータリストから削除します。
False = 終了通知がある場合でもコンピュータリストから削除しません。Get値:True = 終了通知でコンピュータリストから削除します。
False = 終了通知がある場合でもコンピュータリストから削除しません。使用例:
Public Class Form1 Dim ClsPrv_NSDCC As NSDClientCount = Nothing Private Sub Form1_Load( sender As System.Object, _ e As System.EventArgs _ ) Handles MyBase.Load Try ClsPrv_NSDCC = New NSDClientCount Dim Str_MailSlotName As String = "Test\Client\Count\Check" If Not ClsPrv_NSDCC.Init_ClientCount(Str_MailSlotName, True) Then MsgBox("初期化に失敗しました。" & _ ControlChars.CrLf & _ "コンピュータを再起動してください。") End End If Catch ex As Exception End Try End Sub Private Sub Form1_FormClosed( sender As Object, _ e As System.Windows.Forms.FormClosedEventArgs _ ) Handles Me.FormClosed Try ' 解放処理。 If Not (ClsPrv_NSDCC Is Nothing) Then ClsPrv_NSDCC.Dispose() ClsPrv_NSDCC = Nothing End If Catch ex As Exception End Try End Sub Private Sub Button1_Click( sender As System.Object, _ e As System.EventArgs _ ) Handles Button1.Click Try ' 終了通知の処理方法を切り替えます。 ClsPrv_NSDCC.EndFlag = Not ClsPrv_NSDCC.EndFlag Catch ex As Exception End Try End Sub End Class
●NSDClientCountメソッドの説明
名前:Dispose
構文:Public Overridable Sub Dispose() Implements IDisposable.Dispose 機能:リソースを解放します。
※終了時に必ず呼び出します。
引数:なし。
戻り値:なし。
使用例:
Public Class Form1 Dim ClsPrv_NSDCC As NSDClientCount = Nothing Private Sub Form1_Load( sender As System.Object, _ e As System.EventArgs _ ) Handles MyBase.Load Try ClsPrv_NSDCC = New NSDClientCount Dim Str_MailSlotName As String = "Test\Client\Count\Check" If Not ClsPrv_NSDCC.Init_ClientCount(Str_MailSlotName, True) Then MsgBox("初期化に失敗しました。" & _ ControlChars.CrLf & _ "コンピュータを再起動してください。") End End If Catch ex As Exception End Try End Sub Private Sub Form1_FormClosed( sender As Object, _ e As System.Windows.Forms.FormClosedEventArgs _ ) Handles Me.FormClosed Try ' 解放処理。 If Not (ClsPrv_NSDCC Is Nothing) Then ClsPrv_NSDCC.Dispose() ClsPrv_NSDCC = Nothing End If Catch ex As Exception End Try End Sub End Class
名前:Init_ClientCount
構文:Public Function Init_ClientCount( MailSlotName , EndCheck , [EventTimerTick] , [DomainName] ) As Boolean 機能:初期化処理を行います。
引数:
名前 型 引数渡しの方法 説明 MailSlotName String 値渡し(ByVal) メールスロット名を渡します。 EndCheck Boolean 値渡し(ByVal) 終了通知の処理方法を渡します。
True = 終了通知でコンピュータリストから削除します。
False = 終了通知がある場合でもコンピュータリストから削除しません。[EventTimerTick] NSDClientCount_EventHandler 値渡し(ByVal) 定期的に取得するイベントのハンドルを渡します。(既定値:Nothing) [DomainName] String 値渡し(ByVal) ドメイン名を渡します。(既定値:Nothing)
※Nothingはプライマリドメインで処理します。戻り値:Boolean
戻り値の説明:
True:成功 False:失敗
使用例@:初期化関数に定期イベントのアドレスを渡す方法。
Public Class Form1 Dim ClsPrv_NSDCC As NSDClientCount = Nothing Private Sub Form1_Load( sender As System.Object, _ e As System.EventArgs _ ) Handles MyBase.Load Try ClsPrv_NSDCC = New NSDClientCount Dim Str_MailSlotName As String = "Test\Client\Count\Check" If Not ClsPrv_NSDCC.Init_ClientCount(Str_MailSlotName, _ True, _ AddressOf NSDCCTimerTick) Then MsgBox( "初期化に失敗しました。" & _ ControlChars.CrLf & _ "コンピュータを再起動してください。") End End If Catch ex As Exception End Try End Sub Private Sub Form1_FormClosed( sender As Object, _ e As System.Windows.Forms.FormClosedEventArgs _ ) Handles Me.FormClosed Try ' 解放処理。 If Not (ClsPrv_NSDCC Is Nothing) Then ClsPrv_NSDCC.Dispose() ClsPrv_NSDCC = Nothing End If Catch ex As Exception End Try End Sub ' 定期的に発生するイベント。 Private Sub NSDCCTimerTick( ByVal sender As Object, _ ByVal e As NSDClientCount.NSDClientCountEventArgs) Try ' タイマーを停止します。 CType(sender, NSDClientCount).TimerEnabled = False ' コンピュータ名をセットします。 With Me.ListBox1 .Items.Clear() If Not (e.List Is Nothing) Then For Int_Loop As Integer = 0 to e.List.Count - 1 .Items.Add(e.List.Item(Int_Loop)) Next End If End With Catch ex As Exception Finally ' タイマーを開始します。 CType(sender, NSDClientCount).TimerEnabled = True End Try End Sub End Class
使用例A:タイマーで定期的に確認する方法。
Public Class Form1 Dim ClsPrv_NSDCC As NSDClientCount = Nothing Private Sub Form1_Load( sender As System.Object, _ e As System.EventArgs _ ) Handles MyBase.Load Try ClsPrv_NSDCC = New NSDClientCount Dim Str_MailSlotName As String = "Test\Client\Count\Check" If Not ClsPrv_NSDCC.Init_ClientCount(Str_MailSlotName, _ True ) Then MsgBox( "初期化に失敗しました。" & _ ControlChars.CrLf & _ "コンピュータを再起動してください。") End End If Catch ex As Exception End Try End Sub Private Sub Form1_FormClosed( sender As Object, _ e As System.Windows.Forms.FormClosedEventArgs _ ) Handles Me.FormClosed Try ' 解放処理。 If Not (ClsPrv_NSDCC Is Nothing) Then ClsPrv_NSDCC.Dispose() ClsPrv_NSDCC = Nothing End If Catch ex As Exception End Try End Sub ' 定期的に確認します。 Private Sub Timer1_Tick( sender As System.Object, _ e As System.EventArgs _ ) Handles Timer1.Tick Try Dim Cls_ComputerList As Collections.ArrayList = Nothing If ClsPrv_NSDCC.ClientCountCheck(Cls_ComputerList) Then ' コンピュータ名をセットします。 With Me.ListBox1 .Items.Clear() If Not (Cls_ComputerList Is Nothing) Then For Int_Loop As Integer = 0 to Cls_ComputerList.Count - 1 .Items.Add(Cls_ComputerList.Item(Int_Loop)) Next End If End With End If Catch ex As Exception Finally End Try End Sub End Class
名前:ClientCountCheck
構文:Public Function ClientCountCheck( ComputerList ) As Boolean 機能:同一プログラムの起動確認を行います。
引数:
名前 型 引数渡しの方法 説明 ComputerList Collections.ArrayList 参照渡し(ByRef) コンピュータ名のリストを返します。 戻り値:Boolean
戻り値の説明:
True:成功 False:失敗
使用例:
Public Class Form1 Dim ClsPrv_NSDCC As NSDClientCount = Nothing Private Sub Form1_Load( sender As System.Object, _ e As System.EventArgs _ ) Handles MyBase.Load Try ClsPrv_NSDCC = New NSDClientCount Dim Str_MailSlotName As String = "Test\Client\Count\Check" If Not ClsPrv_NSDCC.Init_ClientCount(Str_MailSlotName, _ True ) Then MsgBox( "初期化に失敗しました。" & _ ControlChars.CrLf & _ "コンピュータを再起動してください。") End End If Catch ex As Exception End Try End Sub Private Sub Form1_FormClosed( sender As Object, _ e As System.Windows.Forms.FormClosedEventArgs _ ) Handles Me.FormClosed Try ' 解放処理。 If Not (ClsPrv_NSDCC Is Nothing) Then ClsPrv_NSDCC.Dispose() ClsPrv_NSDCC = Nothing End If Catch ex As Exception End Try End Sub ' 定期的に確認します。 Private Sub Timer1_Tick( sender As System.Object, _ e As System.EventArgs _ ) Handles Timer1.Tick Try Dim Cls_ComputerList As Collections.ArrayList = Nothing If ClsPrv_NSDCC.ClientCountCheck(Cls_ComputerList) Then ' コンピュータ名をセットします。 With Me.ListBox1 .Items.Clear() If Not (Cls_ComputerList Is Nothing) Then For Int_Loop As Integer = 0 to Cls_ComputerList.Count - 1 .Items.Add(Cls_ComputerList.Item(Int_Loop)) Next End If End With End If Catch ex As Exception Finally End Try End Sub End Class
名前:GetClientList
構文:Public Function GetClientList( ComputerList , WaitTime ) As Boolean 機能:同一プログラムの起動確認を行います。
引数:
名前 型 引数渡しの方法 説明 ComputerList Collections.ArrayList 参照渡し(ByRef) コンピュータ名のリストを返します。 WaitTime Integer 値渡し(ByVal) 返信確認までの待ち時間をms(ミリ秒)で指定します。 戻り値:Boolean
戻り値の説明:
True:成功 False:失敗
使用例:
Public Class Form1 Dim ClsPrv_NSDCC As NSDClientCount = Nothing Private Sub Form1_Load( sender As System.Object, _ e As System.EventArgs _ ) Handles MyBase.Load Try ClsPrv_NSDCC = New NSDClientCount Dim Str_MailSlotName As String = "Test\Client\Count\Check" If Not ClsPrv_NSDCC.Init_ClientCount(Str_MailSlotName, _ True, _ AddressOf NSDCCTimerTick) Then MsgBox( "初期化に失敗しました。" & _ ControlChars.CrLf & _ "コンピュータを再起動してください。") End End If Catch ex As Exception End Try End Sub Private Sub Form1_FormClosed( sender As Object, _ e As System.Windows.Forms.FormClosedEventArgs _ ) Handles Me.FormClosed Try ' 解放処理。 If Not (ClsPrv_NSDCC Is Nothing) Then ClsPrv_NSDCC.Dispose() ClsPrv_NSDCC = Nothing End If Catch ex As Exception End Try End Sub ' 定期的に発生するイベント。 Private Sub NSDCCTimerTick( ByVal sender As Object, _ ByVal e As NSDClientCount.NSDClientCountEventArgs) Try ' タイマーを停止します。 CType(sender, NSDClientCount).TimerEnabled = False ' コンピュータ名をセットします。 With Me.ListBox1 .Items.Clear() If Not (e.List Is Nothing) Then For Int_Loop As Integer = 0 to e.List.Count - 1 .Items.Add(e.List.Item(Int_Loop)) Next End If End With Catch ex As Exception Finally ' タイマーを開始します。 CType(sender, NSDClientCount).TimerEnabled = True End Try End Sub ' 再取得ボタン。 Private Sub Button1_Click( sender As System.Object, _ e As System.EventArgs _ ) Handles Button1.Click Try Dim Int_WaitTime As Integer = 1000 Dim Cls_ComputerList As Collections.ArrayList = Nothing ClsPrv_NSDCC.GetClientList(Cls_ComputerList, Int_WaitTime) ' コンピュータ名をセットします。 With Me.ListBox1 .Items.Clear() If Not (Cls_ComputerList Is Nothing) Then For Int_Loop As Integer = 0 to Cls_ComputerList.Count - 1 .Items.Add(Cls_ComputerList.Item(Int_Loop)) Next End If End With Catch ex As Exception End Try End Sub End Class
●NSDClientCountイベントの説明
名前:NSDCCTimerTick
構文:Public Event NSDCCTimerTick( sender , EventArgs ) 機能:定期的に発生するイベント。
引数:
名前 型 引数渡しの方法 説明 sender Object 値渡し(ByVal) 呼び出し元を渡します。 EventArgs NSDClientCountEventArgs 値渡し(ByVal) コンピュータ名のリストを渡します。 戻り値:なし。
使用例:
Public Class Form1 Dim ClsPrv_NSDCC As NSDClientCount = Nothing Private Sub Form1_Load( sender As System.Object, _ e As System.EventArgs _ ) Handles MyBase.Load Try ClsPrv_NSDCC = New NSDClientCount Dim Str_MailSlotName As String = "Test\Client\Count\Check" If Not ClsPrv_NSDCC.Init_ClientCount(Str_MailSlotName, _ True, _ AddressOf NSDCCTimerTick) Then MsgBox( "初期化に失敗しました。" & _ ControlChars.CrLf & _ "コンピュータを再起動してください。") End End If Catch ex As Exception End Try End Sub Private Sub Form1_FormClosed( sender As Object, _ e As System.Windows.Forms.FormClosedEventArgs _ ) Handles Me.FormClosed Try ' 解放処理。 If Not (ClsPrv_NSDCC Is Nothing) Then ClsPrv_NSDCC.Dispose() ClsPrv_NSDCC = Nothing End If Catch ex As Exception End Try End Sub ' 定期的に発生するイベント。 Private Sub NSDCCTimerTick( ByVal sender As Object, _ ByVal e As NSDClientCount.NSDClientCountEventArgs) Try ' タイマーを停止します。 CType(sender, NSDClientCount).TimerEnabled = False ' コンピュータ名をセットします。 With Me.ListBox1 .Items.Clear() If Not (e.List Is Nothing) Then For Int_Loop As Integer = 0 to e.List.Count - 1 .Items.Add(e.List.Item(Int_Loop)) Next End If End With Catch ex As Exception Finally ' タイマーを開始します。 CType(sender, NSDClientCount).TimerEnabled = True End Try End Sub End Class
Copyright (C) 2013 Nihon System Developer Corp. All Rights Reserved.