如何判断一台远程服务器的某个程序正在运行?

fernery 2003-08-26 08:53:58
客户机访问远程的服务器,那台服务器有一个程序正在运行,如何判断该机器的这个程序正在运行?
不需要连接那程序,只要判断是否运行就可以了
...全文
257 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
GetWindowPos 2003-08-27
  • 打赏
  • 举报
回复
1 建立TCP连接
2 在对方电脑枚举出所有进程
3 在这些进程中查找是否符合你要求的
4 如果没有,隔一段时间断续找,如果有,给你发送一条消息

hxy2003 2003-08-27
  • 打赏
  • 举报
回复
UP..
fernery 2003-08-27
  • 打赏
  • 举报
回复
up
fernery 2003-08-27
  • 打赏
  • 举报
回复
楼上的具体该怎么做啊
我能举出所有进程可以了
只是不知道该怎么写
道素 2003-08-26
  • 打赏
  • 举报
回复

Private Sub CheckName(ByVal strProcessName As String)
Dim objWMIService As Object
Dim colItems As Object
Dim objItem As Object
Dim strCheck As String

Const strComputer = "" ' Remote computer name (prefix With \\, i.e. \\ComputerName), leave blank For the local machine
Const WMIFLAGFORWARDONLY = 32
Const WMIFLAGRETURNIMMEDIATELY = 16

'Initialize
strCheck = vbNullString
Set objWMIService = GetObject("winmgmts:" & strComputer & "\root\cimv2")
'Get Records, use the percent sign (%) a
' s a wildcard
Set colItems = objWMIService.ExecQuery _
("SELECT * FROM Win32_Process WHERE NAME LIKE '" & strProcessName & "'", , _
WMIFLAGRETURNIMMEDIATELY + WMIFLAGFORWARDONLY)
'In case more than one process exists, b
' uild name list


For Each objItem In colItems
strCheck = strCheck & objItem.Name & vbCrLf
Next
'Display results
MsgBox "These processes match the name provided:" & vbCrLf & strCheck, _
vbInformation + vbOKOnly, "Process Check"
'Clean-up objects
Set objWMIService = Nothing
Set colItems = Nothing
End Sub
道素 2003-08-26
  • 打赏
  • 举报
回复
这个问题可以用WMI解决
Function IsProcessRunning( strServer, strProcess )
Dim Process, strObject
IsProcessRunning = False
strObject= "winmgmts://" & strServer


For Each Process In GetObject( strObject ).InstancesOf( "win32_process" )
If UCase( Process.name ) = UCase( strProcess ) Then
IsProcessRunning = True
Exit Function
End If
Next
End Function

Dim strComputer, strProcess


Do
strProcess = inputbox( "Please enter the name of the process (for instance: explorer.exe)", "Input" )
Loop until strProcess <> ""


Do
strComputer = inputbox( "Please enter the computer name", "Input" )
Loop until strComputer <> ""


If( IsProcessRunning( strComputer, strProcess ) = True ) Then
WScript.Echo "Process " & strProcess & " is running On computer " & strComputer
Else
WScript.Echo "Process " & strProcess & " is Not running On computer " & strComputer
End If

是不是很简单
fernery 2003-08-26
  • 打赏
  • 举报
回复
我试了一下,连本机(win2000)可以
连其他2000机器报错为拒绝的权限
该怎么办啊
fernery 2003-08-26
  • 打赏
  • 举报
回复
up,
我试一下
有没有简单一点的呢

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧