方法选择:
①数组法(效率一般,代码简练且灵活,但CPU、内存占用高)
②直接描述法(效率较高,代码繁杂,灵活性差,CPU、内存占用相对较低)
===========分割线============
①数组法:
首先,定义一个文本型的空数组。
像这样:
![](https://video.ask-data.xyz/img.php?b=https://iknow-pic.cdn.bcebos.com/d01373f082025aaf6d266b0afcedab64024f1ade?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto)
然后,画一个界面。(提示:用超级列表框可以很直观的看出程序是否正在运行,并且可以随时更新列表项,不需要像其他的列表框那样必须得把所有的表项重画)
越简单越好,就像这样:
![](https://video.ask-data.xyz/img.php?b=https://iknow-pic.cdn.bcebos.com/34fae6cd7b899e51b3ad2dd545a7d933c9950dcb?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto)
然后,双击“添加进程”按钮,来到代码编辑器中。
直接复制这些代码,然后粘贴到编辑器中:
.版本 2
.支持库 EThread
.支持库 iext
.支持库 eAPI
.支持库 spec
.程序集 窗口程序集_启动窗口
.程序集变量 进程列表, 文本型, , "0"
.程序集变量 ThreadHWND, 整数型
.子程序 _按钮1_被单击
.局部变量 临时进程名, 文本型
输入框 (“请输入要监测的进程名”, , , 临时进程名, , )
.如果真 (临时进程名 ≠ “”)
加入成员 (进程列表, 临时进程名)
.如果真结束
启动线程 (&listAllProgress, , )
.子程序 listAllProgress
.局部变量 i, 整数型
超级列表框1.全部删除 ()
.计次循环首 (取数组成员数 (进程列表), i)
超级列表框1.插入表项 (, 进程列表 [i], , , , )
.计次循环尾 ()
.子程序 isProgressRunning
.局部变量 p, 整数型
.局部变量 progressList, 进程信息, , "0"
.局部变量 l, 整数型
progressList = 取系统进程列表 ()
.计次循环首 (取数组成员数 (进程列表), p)
.计次循环首 (取数组成员数 (progressList), l)
' 调试输出 (到文本 (progressList [l].进程名称))
.如果真 (progressList [l].进程名称 = 进程列表 [p])
超级列表框1.置标题 (超级列表框1.查找表项 (进程列表 [p], , , ), 1, “真”)
.如果真结束
.计次循环尾 ()
.计次循环尾 ()
延迟 (3000)
启动线程 (&isProgressRunning, , ThreadHWND)
.子程序 __启动窗口_创建完毕
启动线程 (&isProgressRunning, , ThreadHWND)
.子程序 __启动窗口_将被销毁
强制结束线程 (ThreadHWND)附:代码在附件中已经打包。
效果图
![](https://video.ask-data.xyz/img.php?b=https://iknow-pic.cdn.bcebos.com/86d6277f9e2f0708ce6e34c1ee24b899a801f28c?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto)
===========分割线============
②直接描述法:
【直接描述法简单到几乎不需要界面,所以这里就只有代码。】
.版本 2
.支持库 eAPI
.支持库 spec
.支持库 EThread
.程序集 窗口程序集_启动窗口
.程序集变量 ThreadHWND, 整数型
.子程序 isProgressRunning
.局部变量 p, 整数型
.局部变量 progressList, 进程信息, , "0"
.局部变量 l, 整数型
progressList = 取系统进程列表 ()
.计次循环首 (取数组成员数 (progressList), l)
' 调试输出 (到文本 (progressList [l].进程名称))
.如果真 (progressList [l].进程名称 = “System”)
调试输出 (“System运行中”)
.如果真结束
.如果真 (progressList [l].进程名称 = “QQ.exe”)
调试输出 (“QQ.exe运行中”)
.如果真结束
.计次循环尾 ()
延迟 (3000)
启动线程 (&isProgressRunning, , ThreadHWND)
.子程序 __启动窗口_创建完毕
启动线程 (&isProgressRunning, , ThreadHWND)
.子程序 __启动窗口_将被销毁
强制结束线程 (ThreadHWND)
附:代码在附件中已经打包。
运行效果:
![](https://video.ask-data.xyz/img.php?b=https://iknow-pic.cdn.bcebos.com/0df3d7ca7bcb0a46e2ad92f86c63f6246a60af67?x-bce-process=image%2Fresize%2Cm_lfit%2Cw_600%2Ch_800%2Climit_1%2Fquality%2Cq_85%2Fformat%2Cf_auto)