查询取系统线程信息代码

易语言 2020-07-25 00:02:08

查询取系统线程信息代码

.支持库 iext

查询_系统信息 (#系统进程和线程信息, 0, 0, 内存长度) ' 返回内存长度
内存地址 = 内存_分配 (#填充零初始化, 内存长度)
缓存地址 = 内存地址
查询结果 = 查询_系统信息 (#系统进程和线程信息, 缓存地址, 内存长度, 0)
.如果真 (查询结果 = 0)
拷贝_进程信息 (临时信息, 缓存地址, 244)
拷贝_进程信息 (进程信息, 缓存地址, 180 + 64 × 临时信息.线程数) ' 180是进程信息长度,64是线程信息长度
.判断循环首 (查询结果 ≥ 0)
查询结果 = 临时信息.结构链偏移量 - 1
列表框1.加入项目 (到文本 (进程信息.进程ID), )
.计次循环首 (进程信息.线程数, i)
表项索引 = 超级列表框1.插入表项 (, , , , , )
超级列表框1.置标题 (表项索引, 0, 到文本 (进程信息.进程线程结构 [i].进程线程ID [1]))
超级列表框1.置标题 (表项索引, 1, 到文本 (进程信息.进程线程结构 [i].进程线程ID [2]))
超级列表框1.置标题 (表项索引, 2, 到文本 (进程信息.进程线程结构 [i].线程优先权))
超级列表框1.置标题 (表项索引, 3, 到文本 (进程信息.进程线程结构 [i].环境切换数))
超级列表框1.置标题 (表项索引, 4, 到文本 (进程信息.进程线程结构 [i].当前状态))
超级列表框1.置标题 (表项索引, 5, 到文本 (进程信息.进程线程结构 [i].等待原因))
.计次循环尾 ()
缓存地址 = 缓存地址 + 临时信息.结构链偏移量
拷贝_进程信息 (临时信息, 缓存地址, 244)
拷贝_进程信息 (进程信息, 缓存地址, 180 + 64 × 临时信息.线程数)
.判断循环尾 ()
.如果真结束
内存_释放 (内存地址)
标签1.标题 = “进程数目:” + 到文本 (列表框1.取项目数 ()) + “ 线程数目:” + 到文本 (超级列表框1.取表项数 ())