问题描述:
我想要编一个监控进程(比如iexplore.exe)这个进程,每秒钟检测一次,发现这个进程马上结束掉这个进程,请问各位,这个代码应该怎么编写。
解析:
这个问题可以这样的解决:vb6下编译通过的。
Private Const PROCESS_TERMINATE = &H1
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Sub Timer1_Timer()
Dim hProcess As Long
hProcess = Shell("notepad.exe", vbNormalFocus) '取得id
Sleep (1000)
hProcess = OpenProcess(PROCESS_TERMINATE, 0&, hProcess) '取得句柄
TerminateProcess hProcess, 0&'结束进程
Timer1.Enabled = False
CloseHandle hProcess
End Sub
注意:timer1的interval的属性设置为1000,
:notepad.exe是随便写的,你可以改成你要的监控进程.
:所有的vb的api函数都在vb6的apiview工具之中可以得到!
在需要的地方加End
直接退出程序
或者
System (此处填进程返回值)
Stop
都行
当然,最好考虑关闭自己的所有窗口 使用Unload Me'点自己的关闭按钮。
如果你不需要窗体,删掉他新建模块用
Sub Main()
'...
End Sub
执行完自动退出。
当然 调ExitProcess也是个办法,但是你真的希望连着VB的编辑器一起退出吗?
如果你不需要VB的编辑器,干脆把你的代码编译成EXE,想用多少遍用多少遍,还快。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)