设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 11906|回复: 11
打印 上一主题 下一主题

怎样判断局域网内某台计算机是否存在?

[复制链接]
1#
发表于 2014-3-27 17:58:55 | 显示全部楼层
不必使用Shell,以下代码实现连接并返回连接结果
Function 连接计算机 Lib "mpr.dll" Alias "WNetAddConnection2A" (lpNetResource As 连接数据, ByVal lpPassword As String, ByVal lpUserName As String, ByVal dwFlags As Long) As Long
Type 连接数据
    dwScope As Long
    dwType As Long
    dwDisplayType As Long
    dwUsage As Long
    lpLocalName As String
    lpRemoteName As String
    lpComment As String
    lpProvider As String
End Type

Public Function 是否开机(路径, 盘符, 密码, 用户名) As Boolean
Dim 连接参数 As 连接数据
连接参数.lpLocalName = 盘符
连接参数.lpRemoteName = 路径
连接参数.dwType = &H1
连接结果 = 连接计算机(连接参数, 密码, 用户名, 0)
Select Case 连接结果
  Case 1203:
       是否开机 = False
       MsgBox "无任何网络提供程序接受指定的网络路径(包括电脑未开机,路径错误)"
  Case 0:
       是否开机 = True
       MsgBox "连接成功"
  Case Else:
       是否开机 = True
       MsgBox "对方电脑在线(有些其他情况)"
End Select
End Function
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-29 11:58 , Processed in 0.090355 second(s), 23 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表