.版本 2
.支持库 EThread
.支持库 iext
.支持库 spec
.程序集 窗口程序集_启动窗口, , , ' 本源码来自三叶资源网(www.sanye.cx)
.程序集变量 processes, 精易_进程信息数组, , "0"
.程序集变量 licenses, 整数型, , "0"
.子程序 insertOne, 整数型
.参数 processName, 文本型
.局部变量 index, 整数型
进入许可区 (licenses [1])
index = t_data.插入表项 (, , , , , )
t_data.置标题 (index, 0, 到文本 (index + 1))
t_data.置标题 (index, 1, processName)
exportTable ()
退出许可区 (licenses [1])
返回 (index)
.子程序 __启动窗口_创建完毕
.局部变量 msg, 文本型
.局部变量 items, 文本型, , "0"
.局部变量 i, 整数型
.计次循环首 (3, )
加入成员 (licenses, 创建进入许可证 ())
.计次循环尾 ()
msg = 到文本 (读入文件 (取运行目录 () + “\process.txt”))
items = 分割文本 (msg, #换行符, )
.计次循环首 (取数组成员数 (items), i)
.如果真 (items [i] ≠ “” 且 checkTable (items [i]) = 假)
insertOne (items [i])
.如果真结束
.计次循环尾 ()
sout (, “初始化成功”)
.子程序 _b_insertOne_被单击
.如果真 (b_processName.内容 = “”)
sout (假, “进程名不能为空!”)
返回 ()
.如果真结束
.如果真 (checkTable (b_processName.内容))
sout (假, “进程名已存在!”)
返回 ()
.如果真结束
.如果真 (insertOne (b_processName.内容) ≥ 0)
sout (, “插入成功!”)
b_processName.内容 = “”
.如果真结束
.子程序 checkTable, 逻辑型
.参数 val, 文本型
.局部变量 i, 整数型
进入许可区 (licenses [1])
.计次循环首 (t_data.取表项数 (), i)
.如果真 (t_data.取标题 (i - 1, 1) = val)
退出许可区 (licenses [1])
返回 (真)
.如果真结束
.计次循环尾 ()
退出许可区 (licenses [1])
返回 (假)
.子程序 sout
.参数 status, 逻辑型, 可空
.参数 val, 文本型
.如果 (是否为空 (status) 或 status)
状态条1.置文本 (1, “Right,” + val)
.否则
鸣叫 ()
状态条1.置文本 (1, “Error,” + val)
.如果结束
.子程序 _t_data_被双击, 逻辑型
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型
.如果真 (t_data.现行选中项 ≠ -1)
deleteOne (t_data.现行选中项)
.如果真结束
.子程序 deleteOne
.参数 index, 整数型
进入许可区 (licenses [1])
t_data.删除表项 (index)
exportTable ()
退出许可区 (licenses [1])
.子程序 exportTable, 整数型
.局部变量 i, 整数型
.局部变量 msg, 文本型
进入许可区 (licenses [1])
.计次循环首 (t_data.取表项数 (), i)
msg = msg + t_data.取标题 (i - 1, 1) + #换行符
.计次循环尾 ()
msg = 文本_删除空行 (msg)
.如果 (写到文件 (取运行目录 () + “\process.txt”, 到字节集 (msg)))
' sout (, “导出成功!”)
.否则
sout (假, “导出失败!”)
.如果结束
退出许可区 (licenses [1])
返回 (i)
.子程序 _b_start_被单击
.如果 (b_start.标题 = “开启”)
b_start.标题 = “停止”
sout (, “开启监控!”)
启动线程 (&thredRun, , )
.否则
b_start.标题 = “开启”
sout (, “停止监控!”)
.如果结束
.子程序 thredRun
.局部变量 new, 精易_进程信息数组, , "0"
.局部变量 screened, 精易_进程信息数组, , "0"
.局部变量 i, 整数型
.局部变量 processNames, 文本型, , "0"
.局部变量 _processes, 精易_进程信息数组, , "0"
调试输出 (“线程开始运行”)
.判断循环首 (b_start.标题 = “停止”)
' 调试输出 (“正在刷新...”)
.如果真 (getTableList (processNames) > 0)
调试输出 (processNames)
进程_取系统进程列表 (new)
screenProcess (processNames, new, screened)
调试输出 (screened)
进入许可区 (licenses [2])
_processes = processes
退出许可区 (licenses [2])
.计次循环首 (取数组成员数 (_processes), i)
.如果真 (b_start.标题 = “开启”)
跳出循环 ()
.如果真结束
.如果真 (checkTable (_processes [i].进程名称))
.如果真 (checkProcess (_processes [i].进程标识符, _processes [i].进程名称, screened) = 假) ' 进程销毁
调试输出 (“进程已销毁”, _processes [i].线程数, _processes [i].进程名称, _processes [i].进程标识符, _processes [i].父进程标识符, _processes [i].进程模块标识符)
.如果真结束
.如果真结束
.计次循环尾 ()
.计次循环首 (取数组成员数 (screened), i)
.如果真 (b_start.标题 = “开启”)
跳出循环 ()
.如果真结束
.如果真 (checkTable (screened [i].进程名称))
.如果真 (checkProcess (screened [i].进程标识符, screened [i].进程名称, _processes) = 假) ' 进程创建
调试输出 (“进程已创建”, screened [i].线程数, screened [i].进程名称, screened [i].进程标识符, screened [i].父进程标识符, screened [i].进程模块标识符)
.如果真结束
.如果真结束
.计次循环尾 ()
进入许可区 (licenses [2])
processes = screened
退出许可区 (licenses [2])
.如果真结束
处理事件 ()
程序_延时 (1000)
.判断循环尾 ()
.子程序 getTableList, 整数型
.参数 processNames, 文本型, 参考 可空 数组
.局部变量 i, 整数型
进入许可区 (licenses [1])
重定义数组 (processNames, 假, 0)
.计次循环首 (t_data.取表项数 (), i)
加入成员 (processNames, t_data.取标题 (i - 1, 1))
.计次循环尾 ()
退出许可区 (licenses [1])
返回 (取数组成员数 (processNames))
.子程序 checkProcess, 逻辑型
.参数 pid, 整数型
.参数 processName, 文本型
.参数 val, 精易_进程信息数组, 数组
.局部变量 i, 整数型
.计次循环首 (取数组成员数 (val), i)
.如果真 (val [i].进程标识符 = pid 且 val [i].进程名称 = processName)
返回 (真)
.如果真结束
.计次循环尾 ()
返回 (假)
.子程序 screenProcess, 整数型
.参数 processNames, 文本型, 数组
.参数 original, 精易_进程信息数组, 数组
.参数 result, 精易_进程信息数组, 参考 可空 数组
.局部变量 i, 整数型
重定义数组 (result, 假, 0)
.计次循环首 (取数组成员数 (original), i)
.如果真 (checkProcessNames (processNames, original [i].进程名称))
加入成员 (result, original [i])
.如果真结束
.计次循环尾 ()
返回 (取数组成员数 (result))
.子程序 checkProcessNames, 逻辑型
.参数 processNames, 文本型, 数组
.参数 processName, 文本型
.局部变量 i, 整数型
.计次循环首 (取数组成员数 (processNames), i)
.如果真 (processNames [i] = processName)
返回 (真)
.如果真结束
.计次循环尾 ()
返回 (假)
.子程序 __启动窗口_将被销毁
.局部变量 i, 整数型
.计次循环首 (取数组成员数 (licenses), i)
删除进入许可证 (licenses [i])
.计次循环尾 ()