Office中国论坛/Access中国论坛

标题: 怎样判断局域网内某台计算机是否存在? [打印本页]

作者: bjcompass    时间: 2014-3-26 22:55
标题: 怎样判断局域网内某台计算机是否存在?
能够利用窗体的打开事件判断局域网内某台计算机是否已经开机吗?比如某台计算机名为“abc”
如果可以,那么代码如何写呢?谢谢

作者: 开心二点    时间: 2014-3-27 08:03
来学习学习
作者: 开心二点    时间: 2014-3-27 08:04
用ping命令看看
作者: 盗梦    时间: 2014-3-27 09:05
用cmd命令 ping一下,判断结果
作者: 盗梦    时间: 2014-3-27 09:12
本帖最后由 盗梦 于 2014-3-27 09:15 编辑

例如 shell "cmd.exe /c ping 电脑名 >>" & currentproject.path & "\ip.txt"执行完之后,access所在的位置就会出现ip.txt 这个文件
当然,最好循环判断文件是否存在
当文件存在了,就打开读取里面的内容,如果读取到 Lost = 4 (100% loss)
说明,网络不通,或者电脑没开,或者不存在这个电脑

作者: bjcompass    时间: 2014-3-27 11:17
本帖最后由 bjcompass 于 2014-3-27 14:23 编辑

谢谢网友回答,
我的本意是这样的:
在局域网A电脑上有一个共享文件夹,共享名 “data”
我想在B电脑access数据库的窗体打开事件中建立网络映射磁盘“ W” 指向共享文件夹 “data”。
在窗体打开事件代码中写了:Shell "net use w: \\A计算机名\Data " 一句代码,可以正常在B机中设置映射磁盘。
但是如果A计算机没有开机,B计算机有时就会出现DoS命令行窗口而且较长时间不能关闭。
希望在运行 Shell "net use w: \\A计算机名\Data "代码之前判断A机没有开机,然后进行提示并退出。
望各位指教!




























作者: cgsilicone    时间: 2014-3-27 17:58
不必使用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
作者: starscr    时间: 2014-4-3 13:53
ping命令就可以做到呀
作者: bjcompass    时间: 2014-5-8 21:40
谢谢网友回答,受益了!
作者: 好运牛    时间: 2014-5-8 23:43
学习学习
作者: 站到终点站    时间: 2014-9-18 09:30
学习,收藏
作者: xxk8077    时间: 2023-3-5 20:30
学习收藏




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3