欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

511遇见易语言API模块****进程取ID数组

程序员文章站 2024-03-26 13:12:47
...

本课是完成大漠多线程的必须写封装的命令,因为线程我们要同时获取多个窗口的句柄,那么我们可以先获取多个窗口的进程ID数组,再根据进程ID分别获取窗口句柄。

视频链接

511遇见易语言模块API教程

思路:

1、进程名称是不变的,每个进程名称对应唯一的PID(进程ID)
2、 多开就要获得每个进程ID,然后通过 进程_ID取窗口句柄 获取每个进程的 句柄,有了句柄就可以绑定了
用到的API
1、CreateToolhelp32Snapshot(创建进程快照)
2、Process32First(取第一个进程)
3、Process32Next(取下一个进程)
4、CloseHandle(关闭一个内核对象)

用到自定义数据类型(进程信息列表)

511遇见易语言API模块****进程取ID数组

.版本 2

.数据类型 进程信息列表, , 公开
.成员 dwSize, 整数型, , , 1 // 结构大小;
.成员 cntUsage, 整数型, , , 2 // 此进程的引用计数;
.成员 进程ID, 整数型, , , 3 // 进程ID;
.成员 th32DefaultHeapID, 整数型, , , 4 // 进程默认堆ID;
.成员 th32ModuleID, 整数型, , , 5 // 进程模块ID;
.成员 cntThreads, 整数型, , , 6 // 此进程开启的线程计数
.成员 th32ParentProcessID, 整数型, , , 7 // 父进程ID;
.成员 pcPriClassBase, 整数型, , , 8 // 线程优先权;
.成员 dwFlags, 整数型, , , 9 // 保留;
.成员 进程名称, 字节型, , "256", 10 // 进程全名;

进程_取ID数组 源码

511遇见易语言API模块****进程取ID数组

.版本 2

.子程序 进程_取ID数组, 整数型, 公开, (成功返回进程ID的数目,没有就返回0)
.参数 进程名称, 文本型, , 进程的名称
.参数 进程ID数组, 整数型, 参考 数组
.参数 区分大小写, 逻辑型, 可空, 默认是不区分大小写的
.局部变量 进程快照, 整数型, , , 进程快照的句柄
.局部变量 进程句柄, 整数型
.局部变量 进程信息, 进程信息列表, , , 类型是自定义的数据类型

清除数组 (进程ID数组)
进程快照 = CreateToolhelp32Snapshot (15, 0)
.如果真 (进程快照 = 0)
返回 (0)
.如果真结束
' 初始化进程信息列表
进程信息.dwSize = 1024
进程句柄 = Process32First (进程快照, 进程信息)
.判断开始 (区分大小写)
.判断循环首 (进程句柄 ≠ 0)
.如果真 (进程名称 = 到文本 (进程信息.进程名称))
加入成员 (进程ID数组, 进程信息.进程ID)
.如果真结束
进程句柄 = Process32Next (进程快照, 进程信息)
.判断循环尾 ()
.默认
.判断循环首 (进程句柄 ≠ 0)
.如果真 (到小写 (进程名称) = 到小写 (到文本 (进程信息.进程名称)))
加入成员 (进程ID数组, 进程信息.进程ID)
.如果真结束
进程句柄 = Process32Next (进程快照, 进程信息)
.判断循环尾 ()
.判断结束
CloseHandle (进程快照)
返回 (取数组成员数 (进程ID数组))

易语言调用源码:

511遇见易语言API模块****进程取ID数组

参考:易语言模块API制作系列****

         易语言模块API****进程取ID数组

相关标签: 易语言