读书人

定期检测程序运作

发布时间: 2012-12-15 15:16:03 作者: rapoo

定期检测程序运行
本帖最后由 bcrun 于 2012-08-29 09:43:47 编辑

Private Sub Form_Load()
Timer1.Enabled = True
Timer1.Interval = 3000
End Sub

Private Sub Timer1_Timer()
If 0 = getPID("qq.exe") Then MsgBox "程序已关闭", vbInformation, "提示"
End Sub

Function getPID(qq As String) As Long
Dim objWMIService, objProcess, colProcess
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcess = objWMIService.ExecQuery("Select * from Win32_Process")
For Each objProcess In colProcess
If LCase(objProcess.Name) = LCase(qq) Then
getPID = objProcess.ProcessID
Exit For
End If
Next
Set objWMIService = Nothing
Set objProcess = Nothing

End Function


运行时在Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")这行显示

实时错误 ‘-2147217375(80041021)’:
自动化错误

请大家帮忙看看是怎么回事,该程序每隔3秒检测另外一个程序是否运行
[最优解释]
/V] [/FI filter] [/FO format] [/NH]

描述:
这个命令行工具显示应用程序和本地
或远程系统上运行的相关任务/进程的
列表。

参数列表:
/S system 指定连接到的远程系统。

/U [domain\]user 指定应该在哪个用户上下文
执行这个命令。

/P [password] 为提供的用户上下文指定
密码。如果忽略,提示输入。

/M [module] 列出所有其中符合指定模式名
的 DLL 模块的所有任务。
如果没有指定模块名,则
显示每个任务加载的所有模块。

/SVC 显示每个进程中的服务。

/V 指定要显示详述
信息。



/FI filter 显示一系列符合筛选器指定的标准
的任务。

/FO format 指定输出格式。
有效值: "TABLE"、"LIST"、"CSV"。

/NH 指定栏标头不应该在
输出中显示。
只对 "TABLE" 和 "CSV" 格式有效。

/? 显示帮助/用法。


筛选器:
筛选器名 有效操作符 有效值
----------- --------------- --------------
STATUS eq, ne 正在运行
[其他解释]
没有响应
IMAGENAME eq, ne 图像名
PID eq, ne, gt, lt, ge, le PID 值
SESSION eq, ne, gt, lt, ge, le 会话编号
SESSIONNAME eq, ne 会话名
CPUTIME eq, ne, gt, lt, ge, le CPU 时间,格式为
hh:mm:ss。
hh - 时,
mm - 分,ss - 秒
MEMUSAGE eq, ne, gt, lt, ge, le 内存使用量(KB)


USERNAME eq, ne 用户名,格式为 [domain\]user

SERVICES eq, ne 服务名
WINDOWTITLE eq, ne 窗口标题
MODULES eq, ne DLL 名

例如:
TASKLIST
TASKLIST /M
TASKLIST /V
TASKLIST /SVC
TASKLIST /M wbem*
TASKLIST /S system /FO LIST
TASKLIST /S system /U domain\username /FO CSV /NH
TASKLIST /S system /U username /P password /FO TABLE /NH
TASKLIST /FI "USERNAME ne NT AUTHORITY\SYSTEM" /FI "STATUS eq running"

可以将Tasklist放到管道中执行,参阅:
http://download.csdn.net/detail/veron_04/3057332

[其他解释]
一般进程运行都会在任务管理器中有,你可以使用tasklist来查询一下是否有该进程即可。
[其他解释]

TASKLIST [/S system [/U username [/P [password]]]]
[/M [module]
[其他解释]
/SVC
[其他解释]
回复楼上,批处理已经可以实现了,现在vb中跳出错误

读书人网 >VB

热点推荐