511遇见易语言API模块视频教程进程取ID数组

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

视频链接

511遇见易语言模块API教程

思路:

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

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

511遇见易语言API模块视频教程进程取ID数组_第1张图片

.版本 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张图片

.版本 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数组_第3张图片

参考:易语言模块API制作系列视频教程

         易语言模块API视频教程进程取ID数组

你可能感兴趣的:(易语言)