使用VB获取网上邻居里的计算机名

2016-02-19 20:14 7 1 收藏

每个人都希望每天都是开心的,不要因为一些琐事扰乱了心情还,闲暇的时间怎么打发,关注图老师可以让你学习更多的好东西,下面为大家推荐使用VB获取网上邻居里的计算机名,赶紧看过来吧!

【 tulaoshi.com - 编程语言 】

OptionExplicit
  PrivateConstRESOURCE_CONNECTEDAsLong=&H1&
  PrivateConstRESOURCE_GLOBALNETAsLong=&H2&
  PrivateConstRESOURCE_REMEMBEREDAsLong=&H3&
  
  PrivateConstRESOURCEDISPLAYTYPE_DIRECTORY&=&H9
  PrivateConstRESOURCEDISPLAYTYPE_DOMAIN&=&H1
  PrivateConstRESOURCEDISPLAYTYPE_FILE&=&H4
  PrivateConstRESOURCEDISPLAYTYPE_GENERIC&=&H0
  PrivateConstRESOURCEDISPLAYTYPE_GROUP&=&H5
  PrivateConstRESOURCEDISPLAYTYPE_NETWORK&=&H6
  PrivateConstRESOURCEDISPLAYTYPE_ROOT&=&H7
  PrivateConstRESOURCEDISPLAYTYPE_SERVER&=&H2
  PrivateConstRESOURCEDISPLAYTYPE_SHARE&=&H3
  PrivateConstRESOURCEDISPLAYTYPE_SHAREADMIN&=&H8
  PrivateConstRESOURCETYPE_ANYAsLong=&H0&
  PrivateConstRESOURCETYPE_DISKAsLong=&H1&
  PrivateConstRESOURCETYPE_PRINTAsLong=&H2&
  PrivateConstRESOURCETYPE_UNKNOWNAsLong=&HFFFF&
  PrivateConstRESOURCEUSAGE_ALLAsLong=&H0&
  PrivateConstRESOURCEUSAGE_CONNECTABLEAsLong=&H1&
  PrivateConstRESOURCEUSAGE_CONTAINERAsLong=&H2&
  PrivateConstRESOURCEUSAGE_RESERVEDAsLong=&H80000000
  PrivateConstNO_ERROR=0
  PrivateConstERROR_MORE_DATA=234'L//dderror
  PrivateConstRESOURCE_ENUM_ALLAsLong=&HFFFF
  PrivateTypeNETRESOURCE
  dwScopeAsLong
  dwTypeAsLong
  dwDisplayTypeAsLong
  dwUsageAsLong
  pLocalNameAsLong
  pRemoteNameAsLong
  pCommentAsLong
  pProviderAsLong
  EndType
  PrivateTypeNETRESOURCE_REAL
  dwScopeAsLong
  dwTypeAsLong
  dwDisplayTypeAsLong
  dwUsageAsLong
  sLocalNameAsString
  sRemoteNameAsString
  sCommentAsString
  sProviderAsString
  EndType
  PrivateDeclareFunctionWNetAddConnection2Lib"mpr.dll"Alias"WNetAddConnection2A"(lpNetResourceAsNETRESOURCE,ByVallpPasswordAsString,ByVallpUserNameAsString,ByValdwFlagsAsLong)AsLong
  PrivateDeclareFunctionWNetOpenEnumLib"mpr.dll"Alias"WNetOpenEnumA"(ByValdwScopeAsLong,ByValdwTypeAsLong,ByValdwUsageAsLong,lpNetResourceAsAny,lphEnumAsLong)AsLong
  PrivateDeclareFunctionWNetEnumResourceLib"mpr.dll"Alias"WNetEnumResourceA"(ByValhEnumAsLong,lpcCountAsLong,lpBufferAsNETRESOURCE,lpBufferSizeAsLong)AsLong
  PrivateDeclareFunctionWNetCloseEnumLib"mpr.dll"(ByValhEnumAsLong)AsLong
  PrivateDeclareFunctionVarPtrAnyLib"vb40032.dll"Alias"VarPtr"(lpObjectAsAny)AsLong
  PrivateDeclareSubCopyMemLib"kernel32"Alias"RtlMoveMemory"(lpToAsAny,lpFromAsAny,ByVallLenAsLong)
  PrivateDeclareSubCopyMemByPtrLib"kernel32"Alias"RtlMoveMemory"(ByVallpToAsLong,ByVallpFromAsLong,ByVallLenAsLong)
  PrivateDeclareFunctionlstrcpyLib"kernel32"Alias"lstrcpyA"(ByVallpString1AsString,ByVallpString2AsAny)AsLong
  PrivateDeclareFunctionlstrlenLib"kernel32"Alias"lstrlenA"(ByVallpStringAsAny)AsLong
  
  Submain()
  ConstMAX_RESOURCES=256
  ConstNOT_A_CONTAINER=-1
  
  DimbFirstTimeAsBoolean
  DimlReturnAsLong
  DimhEnumAsLong
  DimlCountAsLong
  DimlMinAsLong
  DimlLengthAsLong
  DimlAsLong
  DimlBufferSizeAsLong
  DimlLastIndexAsLong
  DimuNetApi(0ToMAX_RESOURCES)AsNETRESOURCE
  DimuNet()AsNETRESOURCE_REAL
  bFirstTime=True
  Do
  IfbFirstTimeThen
  lReturn=WNetOpenEnum(RESOURCE_GLOBALNET,RESOURCETYPE_ANY,RESOURCEUSAGE_ALL,ByVal0&,hEnum)
  bFirstTime=False
  Else
  IfuNet(lLastIndex).dwUsageAndRESOURCEUSAGE_CONTAINERThen
  lReturn=WNetOpenEnum(RESOURCE_GLOBALNET,RESOURCETYPE_ANY,RESOURCEUSAGE_ALL,uNet(lLastIndex),hEnum)
  Else
  lReturn=NOT_A_CONTAINER
  hEnum=0
  EndIf
  lLastIndex=lLastIndex 1
  EndIf
  IflReturn=NO_ERRORThen
  lCount=RESOURCE_ENUM_ALL
  Do
  lBufferSize=UBound(uNetApi)*Len(uNetApi(0))/2
  lReturn=WNetEnumResource(hEnum,lCount,uNetApi(0),lBufferSize)
  IflCount0Then
  ReDimPreserveuNet(0TolMin lCount-1)AsNETRESOURCE_REAL
  Forl=0TolCount-1
  'EachResourcewillappearhereasuNet(i)
  uNet(lMin l).dwScope=uNetApi(l).dwScope
  uNet(lMin l).dwType=uNetApi(l).dwType
  uNet(lMin l).dwDisplayType=uNetApi(l).dwDisplayType
  uNet(lMin l).dwUsage=uNetApi(l).dwUsage
  IfuNetApi(l).pLocalNameThen
  lLength=lstrlen(uNetApi(l).pLocalName)
  uNet(lMin l).sLocalName=Space$(lLength)
  CopyMemByValuNet(lMin l).sLocalName,ByValuNetApi(l).pLocalName,lLength
  EndIf
  IfuNetApi(l).pRemoteNameThen
  lLength=lstrlen(uNetApi(l).pRemoteName)
  uNet(lMin l).sRemoteName=Space$(lLength)
  CopyMemByValuNet(lMin l).sRemoteName,ByValuNetApi(l).pRemoteName,lLength
  EndIf
  IfuNetApi(l).pCommentThen
  lLength=lstrlen(uNetApi(l).pComment)
  uNet(lMin l).sComment=Space$(lLength)
  CopyMemByValuNet(lMin l).sComment,ByValuNetApi(l).pComment,lLength
  EndIf
  IfuNetApi(l).pProviderThen
  lLength=lstrlen(uNetApi(l).pProvider)
  uNet(lMin l).sProvider=Space$(lLength)
  CopyMemByValuNet(lMin l).sProvider,ByValuNetApi(l).pProvider,lLength
  EndIf
  Nextl
  EndIf
  lMin=lMin lCount
  LoopWhilelReturn=ERROR_MORE_DATA
  EndIf
  IfhEnumThen
  l=WNetCloseEnum(hEnum)
  EndIf
  LoopWhilelLastIndexlMin
  IfUBound(uNet)0Then
  Forl=0ToUBound(uNet)
  SelectCaseuNet(l).dwDisplayType
  CaseRESOURCEDISPLAYTYPE_DIRECTORY&
  Debug.Print"Directory...",
  CaseRESOURCEDISPLAYTYPE_DOMAIN
  Debug.Print"Domain...",
  CaseRESOURCEDISPLAYTYPE_FILE
  Debug.Print"File...",
  CaseRESOURCEDISPLAYTYPE_GENERIC
  Debug.Print"Generic...",
  CaseRESOURCEDISPLAYTYPE_GROUP
  Debug.Print"Group...",
  CaseRESOURCEDISPLAYTYPE_NETWORK&
  Debug.Print"Network...",
  CaseRESOURCEDISPLAYTYPE_ROOT&
  Debug.Print"Root...",
  CaseRESOURCEDISPLAYTYPE_SERVER
  Debug.Print"Server...",
  CaseRESOURCEDISPLAYTYPE_SHARE
  Debug.Print"Share...",
  CaseRESOURCEDISPLAYTYPE_SHAREADMIN&
  Debug.Print"ShareAdmin...",
  EndSelect
  Debug.PrintuNet(l).sRemoteName,uNet(l).sComment
  Nextl
  EndIf
  EndSub->

来源:http://www.tulaoshi.com/n/20160219/1623130.html

延伸阅读
using System;using System.Drawing;using System.Management;using System.Net;using System.Net.Sockets;using System.Collections;using System.ComponentModel;using System.Windows.Forms;using System.Data;namespace MAC_IP_name{ /// /// Form1 的摘要说明。 /// public class Form1 : System.Windows.Forms.Form { private System...
本篇要继续向大家介绍,在各种网络环境中,各Windows系统该如何配置,才能使网络中的所有Windows系统“网上邻居”都能正常工作。这同样非常关键,也是许多读者不能正确地配置网络系统的关键所在。通过对本篇的学习,读者即可全面掌握各种单一、混合网络环境的协议和服务配置需求。当然因篇幅问题,我们在本文对具体协议和服务配置方法不作...
  在部分机器的Windows 2000中打开“邻近的计算机”,常常会等上几十秒的时间,让人无法忍受。仔细分析会发现,在找到的计算机当中,包括“打印机”和“任务计划”两项。通过“网上邻居”浏览计算机时,Windows 2000会先搜索自己的共享目录、可作为网络共享的打印机以及“任务计划”中与网络有关的计划任务,这势必会影响到浏览速度...
在部分机器的Windows 2000中打开“邻近的计算机”,常常会等上几十秒的时间,让人无法忍受。仔细分析会发现,在找到的计算机当中,包括“打印机”和“任务计划”两项。通过“网上邻居”浏览计算机时,Windows 2000会先搜索自己的共享目录、可作为网络共享的打印机以及“任务计划”中与网络有关的计划任务,这势必会影响到浏览速度。所以,...
标签: windows 操作系统
Windows 2000给我们很强大的网络功能,笔者在平时也喜欢和同事们通过“网上邻居”相互访问,时间一长,不知不觉竟也积累了一些使用Windows 2000的网上邻居时技巧,想来非常有用。故整理成文,与使用Windows 2000的“网上邻居”们共享。 1、迅速访问不同工作组 相信在大一些的公司里有很多的工作组,这样我们要访问不在同...

经验教程

726

收藏

81
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部