.版本 2
.程序集 窗口程序集1
.程序集变量 停止监控, 逻辑型
.程序集变量 线程句柄, 整数型
.子程序 _按钮1_被单击
进程监控_启动 ()
按钮1.禁止 = 真
按钮2.禁止 = 取反 (按钮1.禁止)
.子程序 _按钮2_被单击
进程监控_停止 ()
按钮1.禁止 = 假
按钮2.禁止 = 取反 (按钮1.禁止)
.子程序 进程监控_启动
.如果真 (线程句柄 = 0)
停止监控 = 假
' 创建一个新线程
线程句柄 = CreateThread (0, 0, &进程监控_主线程, 0, 0, 0)
.如果真结束
.子程序 进程监控_停止
.如果真 (线程句柄 > 0)
停止监控 = 真
处理事件 ()
延时 (500)
TerminateThread (线程句柄, 0)
线程句柄 = 0
.如果真结束
.子程序 进程监控_主线程
.局部变量 objWbemLocator, 对象
.局部变量 objWMIService, 对象
.局部变量 colMonitoredProcesses, 对象
.局部变量 objLatestProcess, 对象
.局部变量 ObjectText, 文本型
CoInitialize (0) ' 初始化COM库
objWbemLocator.创建 (“WbemScripting.SWbemLocator”, )
objWMIService = objWbemLocator.对象型方法 (“ConnectServer”, “.”, “root\CIMV2”, , , , , , )
colMonitoredProcesses = objWMIService.对象型方法 (“ExecNotificationQuery”, “select * from __instancecreationevent within 1 where TargetInstance isa 'Win32_Process'”)
' colMonitoredProcesses.查看 ()
.判断循环首 (停止监控 = 假)
objLatestProcess = colMonitoredProcesses.对象型方法 (“NextEvent”, )
.如果真 (objLatestProcess.是否为空 () = 假)
ObjectText = objLatestProcess.文本方法 (“GetObjectText_”, )
ObjectText = 子文本替换 (ObjectText, 字符 (10), #换行符, , , 真)
ObjectText = ObjectText + #换行符 + “================================================” + #换行符
编辑框1.加入文本 (ObjectText)
.如果真结束
.判断循环尾 ()
CoUninitialize () ' 取消COM库初始化
.子程序 __启动窗口_创建完毕
objectText