为编程爱好者分享易语言教程源码的资源网
好用的代理IP,游戏必备 ____广告位招租____ 服务器99/年 ____广告位招租____ ____广告位招租____ 挂机,建站服务器
好用的代理IP,游戏必备 ____广告位招租____ 服务器低至38/年 ____广告位招租____ ____广告位招租____ 挂机,建站服务器

网站首页 > 易语言相关 > 易语言例程 正文

进程监控例子开源

三叶资源网 2020-06-01 17:40:25 易语言例程 1011 ℃ 0 评论
.版本 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])
.计次循环尾 ()

@Skwen

文件下载

Tags:

来源:三叶资源网,欢迎分享,公众号:iisanye,(三叶资源网⑤群:21414575

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

百度站内搜索
关注微信公众号
三叶资源网⑤群:三叶资源网⑤群

网站分类
随机tag
QQ空间协议块级元素过滤HTML解析HTML语句分组框美化模块1.2比心APP登录协程模块百度登录百度网盘找图UnicodeHttpWatch破解版sqlitegolang内存皮肤套接字bilibili直播读写IE浏览器保护壳等待进程结束
最新评论