VB 如何检测一个程序是否在运行中?

如我E盘有个程序为:A.exe那我如何去检测这个程序现在是否在运行中?还有如果这个A.exe是VB写的,我如何向他发送一些指定的指令如:自动重起,关闭等信息?本人想做一个... 如我E盘有个程序为:A.exe
那我如何去检测这个程序现在是否在运行中?

还有如果这个A.exe是VB写的,我如何向他发送一些指定的指令
如:自动重起,关闭等信息?

本人想做一个程序监控,防止程序自动出错导致退出。
如果这相,那就不需要监控程序了。人是会偷懒的,程序是不会的,所以要写一个程序来监控,如果退出了,则让他自动启动继续工作!
展开
 我来答
玫瑰为你盛开
2009-06-09 · TA获得超过8518个赞
知道大有可为答主
回答量:820
采纳率:0%
帮助的人:0
展开全部
看是否运行:
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Private Sub Command5_Click()
Dim lHwnd As Long
lHwnd = FindWindow(vbNullString, "程序的Title或Caption")
If lHwnd <> 0 Then
MsgBox "程序正在运行!"
End If
End Sub

向它发送指令:
AppActivate "程序的Title或Caption"
SendKeys "指令"

要启动程序:
Call Shell("完整路径和程序名称.exe")
dcount10
推荐于2016-06-02 · TA获得超过301个赞
知道小有建树答主
回答量:294
采纳率:0%
帮助的人:399万
展开全部
用Timer定时检测进程中是否有这个程序
Private Sub Timer1_Timer()
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Set colProcessList = objWMIService.ExecQuery _
("Select * from Win32_Process Where Name = 'A.EXE'")

For Each objProcess In colProcessList
If objProcess.ExecutablePath = "E:\A.EXE" Then
Exit Sub
End If
Next
Shell "E:\A.EXE"
End Sub
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
宁静致远_88
2009-06-09 · 超过14用户采纳过TA的回答
知道答主
回答量:53
采纳率:0%
帮助的人:46.1万
展开全部
告诉你一个最简单的方法就是直接打开windows任务管理器,看这个程序是否在你的进程里面,看是否在应用程序栏任务下面有显示,并且状态是否显示正在运行。
个人意见仅供参考,希望对您有帮助!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式