- ベストアンサー
VBでネットワーク上のコンピュータ名をチェック
ある コンピュータ名を持つコンピュータがネットワークに繋がっているかどうかを調べて 返すということをしたいのですが… 例えば テキストボックスtext1 に"CP1"と入力して コマンドボタンを押すと、ネットワーク上でCP1 が認識できたら OKとメッセージ表示、できなかったらNOとメッセージ表示と。 NET VIEW などのコマンドを使えばよいのでしょうか。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
APIを使ってネットワークに接続されているコンピュータ名を取得します。 Dim nr As NETRESOURCE Dim lpnr As LPNETRESOURCE Dim bnr(1000) As Byte Dim strRemoteName As String Dim strComNeme As String Dim hEnum As Long Dim BufSize As Long Dim ret As Long strRemoteName = String$(512, 0) nr.dwScope = RESOURCE_GLOBALNET nr.dwType = RESOURCETYPE_ANY nr.dwDisplayType = RESOURCEDISPLAYTYPE_DOMAIN nr.dwUsage = RESOURCEUSAGE_CONTAINER nr.lpRemoteName = "ドメイン名" nr.lpProvider = "Microsoft Windows Network" ret = WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY, 0, nr, hEnum) BufSize = 1000 Do While WNetEnumResource(hEnum, 1, bnr(0), BufSize) = NO_ERROR MoveMemory lpnr, bnr(0), Len(lpnr) lstrcpy strRemoteName, lpnr.lpRemoteName Debug.Print Left$(strRemoteName, InStr(strRemoteName, vbNullChar) - 1) Loop WNetCloseEnum hEnum でネットワーク上のコンピュータ名を取得できるのでその中に指定したコンピュータ名があればOKなければNoのメッセージを出す。
お礼
早速書き込んでやってみたところ、できましたー。ありがとうございました。