【易语言】获取进程列表
B站同名
易语言讨论可加QQ群:160822246
目录
一.开头
二.欲实现效果概述
三.开发详解
一.开头
今天给大家讲一讲易语言怎么获取系统进程列表,讲的会很潦草,最终效果如下图所示,具体理解要看你们自己去实践了
效果
下面我们直接开始
二.欲实现效果概述
界面设计
如图,我们要取系统进程列表,那么显示就直接显示在编辑框内,用一个时钟负责定时的检查,看系统进程列表是否存在变化。
OK,这个软件听上去很简单,下面来实际开发。
三.开发详解
获取系统进程列表,通常采用自带命令取系统进程列表 (),来看看官方的定义:
调用格式: 〈进程信息数组〉 取系统进程列表 () - 应用接口支持库->系统处理 英文名称:GetProcessList 取所有正在运行的程序列表。成功返回程序列表数组;失败返回空。本命令为初级命令。
操作系统需求: Windows
可以看到,返回值需要一个进程信息型的数组来接受,那么我们就会写了
首先直接写到时钟的周期时间内,时钟周期为100:
.版本 2
.支持库 eAPI
.子程序 _时钟1_周期事件
.局部变量 列表, 进程信息, , "0"
列表 = 取系统进程列表 ()
光是取到了,但我们没有显示到编辑框,下一步把进程名称显示在编辑框:
.版本 2
.支持库 eAPI
编辑框1.内容 = “”
编辑框1.加入文本 (列表 [1].进程名称)
.计次循环首 (取数组成员数 (列表) - 1, n)
编辑框1.加入文本 (#换行符 + 列表 [n + 1].进程名称)
.计次循环尾 ()
首先清空编辑框,然后加入列表[1].进程名称
虽然进程信息里包含不少东西,但我们这次只讲进程名称
需要注意,这是我为了简化代码的写法,是为了不再最后多一个换行符或是在开头多一个换行符,所以循环内用的成员数-1和n+1,这个需要自行理解
运行:
运行效果
可以看到程序一直在滚动,界面拖动时有明显卡顿,下面我们来优化代码:
.版本 2
.局部变量 内容, 文本型
新建一个文本型局部变量内容
更换循环的代码:
.版本 2
.支持库 eAPI
内容 = 列表 [1].进程名称
.计次循环首 (取数组成员数 (列表) - 1, n)
内容 = 内容 + #换行符 + 列表 [n + 1].进程名称
.计次循环尾 ()
最后显示内容于编辑框内:
编辑框1.内容 = 内容
运行以后,发现滚动条一直在上,无法拖动,判断是时钟太快,每0.1秒就更换编辑框的内容,事实上,进程内容不一定改变
下面优化这一部分
新建程序集变量“旧列表”
.版本 2
.支持库 eAPI
.程序集变量 旧列表, 进程信息, , "0"
程序集内改为这样:
.版本 2
.支持库 eAPI
列表 = 取系统进程列表 ()
.如果真 (取反 (数组比较 (旧列表, 列表)))
编辑框1.内容 = “”
内容 = 列表 [1].进程名称
.计次循环首 (取数组成员数 (列表) - 1, n)
内容 = 内容 + #换行符 + 列表 [n + 1].进程名称
.计次循环尾 ()
编辑框1.内容 = 内容
复制数组 (旧列表, 列表)
.如果真结束
要在一开始看看两次列表是否一致,一致就不替换
数组比较不是易语言命令,而是子程序,内容如下:
.版本 2
.支持库 eAPI
.子程序 数组比较, 逻辑型
.参数 a, 进程信息, 数组
.参数 b, 进程信息, 数组
.局部变量 n, 整数型
.判断开始 (取数组成员数 (a) = 取数组成员数 (b))
.计次循环首 (取数组成员数 (a), n)
.如果真 (a [n].进程名称 ≠ b [n].进程名称)
返回 (假)
.如果真结束
.计次循环尾 ()
.默认
返回 (假)
.判断结束
返回 (真)
需注意,若相等返回真,但我们要在相等时不执行,需要用到“取反()”
执行,程序取到了列表。
本文到此完毕