自动侦测程序窗口多开用线程控制

易语言 2020-08-14 11:51:11

自动侦测程序窗口多开用线程控制

窗口数量 = 窗口_枚举子窗口 (, 窗口句柄, “Notepad”)
_启动窗口.标题 = “窗口数量:” + 到文本 (窗口数量)
.如果 (窗口数量 = 0) ' 没有任何窗口的话就清空列表
列表框1.清空 ()
.否则
.计次循环首 (窗口数量, i)
列表项数 = 列表框1.取项目数 ()
.如果 (列表项数 = 0) ' 判断列表为空
线程句柄 = 线程_启动 (&线程_控制记事本, 窗口句柄 [i])
列表框1.加入项目 (到文本 (窗口句柄 [i]), 线程句柄) ' 直接将第一个窗口加入列表
.否则
.计次循环首 (列表项数, j) ' 此循环将其他不存在於列表中的句柄加入列表
.如果 (列表框1.取项目文本 (j - 1) = 到文本 (窗口句柄 [i])) ' 如果在列表中找到相同句柄就跳出循环
跳出循环 ()
.否则
.如果真 (j = 列表项数) ' 如果找到列表项目最後一个项目还没有找到的话,就加入项目!
线程句柄 = 线程_启动 (&线程_控制记事本, 窗口句柄 [i])
列表框1.加入项目 (到文本 (窗口句柄 [i]), 线程句柄)
.如果真结束

.如果结束

.计次循环尾 ()
列表项数 = 列表框1.取项目数 () ' 加入完句柄列表数量有变动
.计次循环首 (列表项数, j) ' 比对列表中的窗口是否执行中
.计次循环首 (窗口数量, k)
.如果 (列表框1.取项目文本 (j - 1) = 到文本 (窗口句柄 [k])) ' 侦测到执行中跳出循环
跳出循环 ()
.否则
.如果真 (k = 窗口数量) ' 窗口已无执行,直接删除句柄
列表框1.删除项目 (j - 1)
.如果真结束

.如果结束

.计次循环尾 ()
.计次循环尾 ()
.如果结束

.计次循环尾 ()