易语言怎么添加检测多个运行进程

如题所述

第1个回答  2016-05-30

方法选择:

①数组法(效率一般,代码简练且灵活,但CPU、内存占用高)

②直接描述法(效率较高,代码繁杂,灵活性差,CPU、内存占用相对较低)

 

===========分割线============

①数组法:

    首先,定义一个文本型的空数组。

    像这样:

    然后,画一个界面。(提示:用超级列表框可以很直观的看出程序是否正在运行,并且可以随时更新列表项,不需要像其他的列表框那样必须得把所有的表项重画)

    越简单越好,就像这样:

    然后,双击“添加进程”按钮,来到代码编辑器中。

     直接复制这些代码,然后粘贴到编辑器中:

    .版本 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)

    附:代码在附件中已经打包。

    效果图

 

===========分割线============

②直接描述法:

【直接描述法简单到几乎不需要界面,所以这里就只有代码。】

 

.版本 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)

 附:代码在附件中已经打包。

 

运行效果:

相似回答