.版本 2
.程序集 监视热键, , , ' 本源码来自三叶资源网(www.sanye.cx)
.程序集变量 当前窗口列表, 整数型, , "0"
.子程序 _启动子程序, 整数型
_临时子程序 () '
返回 (0) '
.子程序 _临时子程序
.子程序 监视热键, 整数型, 公开, 监视一个热键,当热键被触发时激活响应事件.(成功返回热键标识,失败返回0).注:必须真实的按键才会触发热键
.参数 响应事件, 子程序指针, , 响应事件(热键标识,其它...),事件参数数目不限!如果再次监视热键将响应事件!
.参数 键代码, 整数型, , 触发事件的基本键,事件在基本键按下时触发,负数为放开时触发,1鼠标左键,2鼠标右键,更多查询相关帮助
.参数 功能键状态, 整数型, 可空, 1 Alt 2 Ctrl 4 Shift 8 Win 若要两个或以上的状态键,则把它们的值相加.
.参数 其它键, 整数型, 可空, 如果你需要注册由两个普通键组合的热键,可设置一个其它键代码.
.参数 周期, 整数型, 可空, 默认为10,监视热键的周期时间(建议5-200之间)
.参数 直接触发, 逻辑型, 可空, 默认为假:创建新的线程事件 真:直接调用事件等待返回
.局部变量 临时热键信息, 热键信息2
.局部变量 i, 整数型
' ============ www.sanye.cx =============--
’本站收录资源,如有密码,默认解压密码都为:www.sanye.cx
’三叶资源网官方③群:33301895
' 投稿邮箱:[email protected]
' ============ =====================--
’专注易语言,按键精灵等编程源码分享的网站
’三叶资源网收集的软件和源码,大部分为软件作者或网友推荐,
’版权归原作者所有,仅供学习和研究使用。
’转载本站提供的资源请勿删除本说明文件。
' 本站提供资源只可供研究使用,请在下载24小时内删除,勿用于商业用途,由此引起一切后果与本站无关。
' ============ www.sanye.cx =============--
.如果真 (到字节 (取绝对值 (键代码)) ≤ 0)
返回 (0)
.如果真结束
.计次循环首 (取数组成员数 (监视热键_信息), i)
.如果真 (监视热键_信息 [i].普通键 = 键代码 且 监视热键_信息 [i].功能键 = 功能键状态 且 监视热键_信息 [i].其它键 = 其它键)
监视热键_信息 [i].事件子程序 = 响应事件
监视热键_信息 [i].直接触发 = 直接触发
.如果真 (监视热键_信息 [i].标识 ≠ 0)
返回 (监视热键_信息 [i].标识) ' 已经注册过的热键,返回热键标识
.如果真结束
监视热键_信息 [i].标识 = i + 1000000
返回 (监视热键_信息 [i].标识)
.如果真结束
.计次循环尾 ()
临时热键信息.事件子程序 = 响应事件
临时热键信息.普通键 = 键代码
临时热键信息.功能键 = 功能键状态
临时热键信息.其它键 = 其它键
临时热键信息.直接触发 = 直接触发
临时热键信息.标识 = 取数组成员数 (监视热键_信息) + 1000001
加入成员 (监视热键_信息, 临时热键信息)
.如果真 (临时热键信息.标识 = 1000001)
_创建定时器 (0, 16661, 选择 (周期 ≤ 0, 10, 周期), &监视热键线程)
.如果真结束
返回 (临时热键信息.标识)
.子程序 撤消监视热键, 逻辑型, 公开, 撤消由监视热键注册的一个或全部热键(成功返回真,失败返回假)
.参数 热键标识, 整数型, 可空, 欲撤消的热键标识,如果留空则撤消全部热键
.局部变量 i, 整数型
.计次循环首 (取数组成员数 (监视热键_信息), i)
.如果 (热键标识 = 0)
监视热键_信息 [i].标识 = 0
.否则
.如果真 (热键标识 = 监视热键_信息 [i].标识)
监视热键_信息 [i].标识 = 0
返回 (真)
.如果真结束
.如果结束
.计次循环尾 ()
返回 (热键标识 = 0)
.子程序 监视热键2, 整数型, 公开, 监视一个热键,当热键被触发时激活响应事件.针对其它进程需要先调用命令"连接窗口线程输入"或指定参数5(成功返回热键标识,失败返回0)
.参数 响应事件, 子程序指针, , 响应事件(热键标识,其它...),事件参数数目不限!如果再次监视热键将响应事件!
.参数 键代码, 整数型, , 触发事件的基本键,事件在普通键被按下时触发,1鼠标左键,2鼠标右键,更多查询相关帮助
.参数 功能键状态, 整数型, 可空, 1 Alt 2 Ctrl 4 Shift 若要两个或以上的状态键,则把它们的值相加.
.参数 其它键, 整数型, 可空, 如果你需要注册由两个普通键组合的热键,可设置一个其它键代码.
.参数 窗口句柄, 整数型, 可空, 欲接收热键的窗口句柄(如需外部程序窗口响应热键,需传递此参数,多个热键也只需指定一次皆可)
.局部变量 临时热键信息, 热键信息2
.局部变量 i, 整数型
.如果真 (到字节 (取绝对值 (键代码)) ≤ 0)
返回 (0)
.如果真结束
.如果真 (是否为空 (窗口句柄) = 假)
_连接线程输入 (_取当前线程ID (), _取窗口进程ID (窗口句柄, 0), 真)
.如果真结束
.计次循环首 (取数组成员数 (监视热键2_信息), i)
.如果真 (监视热键2_信息 [i].普通键 = 键代码 且 监视热键2_信息 [i].功能键 = 功能键状态 且 监视热键2_信息 [i].其它键 = 其它键)
监视热键2_信息 [i].事件子程序 = 响应事件
.如果真 (监视热键2_信息 [i].标识 ≠ 0)
返回 (监视热键2_信息 [i].标识) ' 已经注册过的热键,返回热键标识
.如果真结束
监视热键2_信息 [i].标识 = i + 2000000
返回 (监视热键2_信息 [i].标识)
.如果真结束
.计次循环尾 ()
临时热键信息.事件子程序 = 响应事件
临时热键信息.普通键 = 到字节 (键代码)
临时热键信息.功能键 = 功能键状态
临时热键信息.其它键 = 到字节 (其它键)
临时热键信息.标识 = 取数组成员数 (监视热键2_信息) + 2000001
加入成员 (监视热键2_信息, 临时热键信息)
.如果真 (临时热键信息.标识 = 2000001)
_创建定时器 (0, 6662, 50, &监视热键线程2)
.如果真结束
返回 (临时热键信息.标识)
.子程序 撤消监视热键2, 逻辑型, 公开, 撤消由监视热键2注册的一个或全部热键(成功返回真,失败返回假)
.参数 热键标识, 整数型, 可空, 欲撤消的热键标识,如果留空则撤消全部热键
.局部变量 i, 整数型
.计次循环首 (取数组成员数 (监视热键2_信息), i)
.如果 (热键标识 = 0)
监视热键2_信息 [i].标识 = 0
.否则
.如果真 (热键标识 = 监视热键2_信息 [i].标识)
监视热键2_信息 [i].标识 = 0
返回 (真)
.如果真结束
.如果结束
.计次循环尾 ()
返回 (热键标识 = 0)
.子程序 监视热键3, 整数型, 公开, 监视一个热键,当热键被触发时激活响应事件.(成功返回热键标识,失败返回0)
.参数 响应事件, 子程序指针, , 响应事件(热键标识,其它...),事件参数数目不限!如果再次监视热键将响应事件!
.参数 键代码, 整数型, , 触发事件的基本键,事件在普通键被按下时触发,1鼠标左键,2鼠标右键,更多查询相关帮助
.参数 功能键状态, 整数型, 可空, 1 Alt 2 Ctrl 4 Shift 若要两个或以上的状态键,则把它们的值相加.
.参数 其它键, 整数型, 可空, 如果你需要注册由两个普通键组合的热键,可设置一个其它键代码.
.参数 周期, 整数型, 可空, 默认为10,监视热键的周期时间(建议5-200之间)
.参数 直接触发, 逻辑型, 可空, 默认为假:创建新的线程事件 真:直接调用事件等待返回
.局部变量 临时热键信息, 热键信息2
.局部变量 i, 整数型
.如果真 (到字节 (取绝对值 (键代码)) ≤ 0)
返回 (0)
.如果真结束
.计次循环首 (取数组成员数 (监视热键3_信息), i)
.如果真 (监视热键3_信息 [i].普通键 = 键代码 且 监视热键3_信息 [i].功能键 = 功能键状态 且 监视热键3_信息 [i].其它键 = 其它键)
监视热键3_信息 [i].事件子程序 = 响应事件
监视热键3_信息 [i].直接触发 = 直接触发
.如果真 (监视热键3_信息 [i].标识 ≠ 0)
返回 (监视热键3_信息 [i].标识) ' 已经注册过的热键,返回热键标识
.如果真结束
监视热键3_信息 [i].标识 = i + 3000000
返回 (监视热键3_信息 [i].标识)
.如果真结束
.计次循环尾 ()
临时热键信息.事件子程序 = 响应事件
临时热键信息.普通键 = 到字节 (键代码)
临时热键信息.功能键 = 功能键状态
临时热键信息.其它键 = 到字节 (其它键)
临时热键信息.直接触发 = 直接触发
临时热键信息.标识 = 取数组成员数 (监视热键3_信息) + 3000001
加入成员 (监视热键3_信息, 临时热键信息)
.如果真 (临时热键信息.标识 = 3000001)
_创建定时器 (0, 6663, 选择 (周期 ≤ 0, 10, 周期), &监视热键线程3)
.如果真结束
返回 (临时热键信息.标识)
.子程序 撤消监视热键3, 逻辑型, 公开, 撤消由监视热键3注册的一个或全部热键(成功返回真,失败返回假)
.参数 热键标识, 整数型, 可空, 欲撤消的热键标识,如果留空则撤消全部热键
.局部变量 i, 整数型
.计次循环首 (取数组成员数 (监视热键3_信息), i)
.如果 (热键标识 = 0)
监视热键3_信息 [i].标识 = 0
.否则
.如果真 (热键标识 = 监视热键3_信息 [i].标识)
监视热键3_信息 [i].标识 = 0
返回 (真)
.如果真结束
.如果结束
' 本源码来自三叶资源网(www.sanye.cx)
.计次循环尾 ()
返回 (热键标识 = 0)
.子程序 监视热键4, 整数型, 公开, 监视一个热键,当热键被触发时激活响应事件,仅限于当前进程窗口中响应热键.(成功返回热键标识,失败返回0)
.参数 响应事件, 子程序指针, , 响应事件(热键标识,其它...),事件参数数目不限!如果再次监视热键将响应事件!
.参数 键代码, 整数型, , 触发事件的基本键,事件在普通键被按下时触发,1鼠标左键,2鼠标右键,更多查询相关帮助
.参数 功能键状态, 整数型, 可空, 1 Alt 2 Ctrl 4 Shift 若要两个或以上的状态键,则把它们的值相加.
.参数 其它键, 整数型, 可空, 如果你需要注册由两个普通键组合的热键,可设置一个其它键代码.
.局部变量 临时热键信息, 热键信息2
.局部变量 i, 整数型
.局部变量 临时窗口数组, 整数型, , "0"
.局部变量 j, 整数型
.如果真 (到字节 (取绝对值 (键代码)) ≤ 0)
返回 (0)
.如果真结束
.计次循环首 (取数组成员数 (监视热键4_信息), i)
.如果真 (监视热键4_信息 [i].普通键 = 键代码 且 监视热键4_信息 [i].功能键 = 功能键状态 且 监视热键4_信息 [i].其它键 = 其它键)
监视热键4_信息 [i].事件子程序 = 响应事件
.如果真 (监视热键4_信息 [i].标识 ≠ 0)
返回 (监视热键4_信息 [i].标识) ' 已经注册过的热键,返回热键标识
.如果真结束
监视热键4_信息 [i].标识 = i + 4000000
返回 (监视热键4_信息 [i].标识)
.如果真结束
.计次循环尾 ()
临时热键信息.事件子程序 = 响应事件
临时热键信息.普通键 = 到字节 (键代码)
临时热键信息.功能键 = 功能键状态
临时热键信息.其它键 = 到字节 (其它键)
临时热键信息.标识 = 取数组成员数 (监视热键4_信息) + 4000001
加入成员 (监视热键4_信息, 临时热键信息)
.如果真 (临时热键信息.标识 = 4000001)
.计次循环首 (取进程所有窗口 (_取自进程ID (), 监视热键4_所有窗口), i)
加入成员 (监视热键4_原窗口函数, _设置窗口特征 (监视热键4_所有窗口 [i], -4, &监视热键4_回调窗口函数))
.计次循环尾 ()
.计次循环首 (取数组成员数 (监视热键4_所有窗口), i)
枚举子窗口 (监视热键4_所有窗口 [i], 临时窗口数组)
加入成员 (监视热键4_所有窗口, 临时窗口数组)
.计次循环首 (取数组成员数 (临时窗口数组), j)
加入成员 (监视热键4_原窗口函数, _设置窗口特征 (临时窗口数组 [j], -4, &监视热键4_回调窗口函数))
.计次循环尾 ()
.计次循环尾 ()
.如果真 (取数组成员数 (监视热键4_原窗口函数) = 0)
返回 (0)
.如果真结束
.如果真结束
返回 (临时热键信息.标识)
.子程序 撤消监视热键4, 逻辑型, 公开, 撤消由监视热键注册的一个或全部热键,使用监视热键4在窗口销毁前必须使用本命令撤消监视热键,否则程序将异常崩溃(成功返回真,失败返回假)
.参数 热键标识, 整数型, 可空, 欲撤消的热键标识,如果留空则撤消全部热键
.局部变量 i, 整数型
.计次循环首 (取数组成员数 (监视热键4_信息), i)
.如果 (热键标识 = 0)
监视热键4_信息 [i].标识 = 0
.否则
.如果真 (热键标识 = 监视热键4_信息 [i].标识)
监视热键4_信息 [i].标识 = 0
返回 (真)
.如果真结束
.如果结束
.计次循环尾 ()
.如果真 (热键标识 = 0)
.计次循环首 (取数组成员数 (监视热键4_所有窗口), i)
_设置窗口特征 (监视热键4_所有窗口 [i], -4, 监视热键4_原窗口函数 [i])
.计次循环尾 ()
.如果真结束
返回 (热键标识 = 0)
.子程序 监视热键线程
.局部变量 asdf, 整数型, , , ?
.局部变量 i, 整数型
.局部变量 临时事件, 子程序指针
.局部变量 临时标识, 整数型
.局部变量 a
.局部变量 缓存键状态, 短整数型, , "256"
.计次循环首 (255, i)
缓存键状态 [i] = 251 ' 防检测处理
缓存键状态 [i] = _判断按键状态 (i)
.计次循环尾 ()
.计次循环首 (取数组成员数 (监视热键_信息), i)
.如果真 (监视热键_信息 [i].标识 ≠ 0)
a = 到字节 (取绝对值 (监视热键_信息 [i].普通键))
a = 缓存键状态 [a]
.判断开始 (a = 0) ' 0,无状态
.如果 (监视热键_信息 [i].键状态 = 1)
监视热键_信息 [i].键状态 = 2
.否则
监视热键_信息 [i].键状态 = 0
到循环尾 ()
.如果结束
' 本源码来自三叶资源网(www.sanye.cx)
.判断 (a < 0) ' -32767,按下状态
.如果真 (监视热键_信息 [i].键状态 = 0)
监视热键_信息 [i].键状态 = 1
.如果真结束
.如果真 (监视热键_信息 [i].普通键 < 0)
到循环尾 ()
.如果真结束
.默认
' 1,放开后状态,在不停判断按键状态中得不到放开状态了
.' 如果真 (监视热键_信息 [i].普通键 > 0)
' ' 监视热键_信息 [i].键状态 = 0
' 到循环尾 ()
.如果真结束
.判断结束
' 下面判断激活热键
.如果真 (监视热键_信息 [i].键状态 > 0 且 监视热键_信息 [i].键状态 ≠ 88)
监视热键_信息 [i].键状态 = 88
.如果真 (监视热键_信息 [i].功能键 = 选择 (缓存键状态 [18] < 0, 1, 0) + 选择 (缓存键状态 [17] < 0, 2, 0) + 选择 (缓存键状态 [16] < 0, 4, 0) + 选择 (缓存键状态 [91] < 0, 8, 0))
.如果真 (监视热键_信息 [i].其它键 ≠ 0)
a = 到字节 (取绝对值 (监视热键_信息 [i].其它键))
.如果真 (缓存键状态 [a] ≥ 0)
到循环尾 ()
.如果真结束
.如果真结束
临时事件 = 监视热键_信息 [i].事件子程序
临时标识 = 监视热键_信息 [i].标识
.如果 (监视热键_信息 [i].直接触发)
_回调钩子 (临时事件, 临时标识, 0, 0, 0)
.否则
_关闭对象 (_创建线程 (0, 0, 临时事件, 临时标识, 0, 0))
.如果结束
.如果真结束
.如果真结束
.如果真结束
.计次循环尾 ()
.子程序 监视热键线程2
.局部变量 状态表, 字节集
.局部变量 缓存表, 字节集
.局部变量 功能键状态, 整数型
.局部变量 i, 整数型
.局部变量 a, 字节型
.局部变量 b, 字节型
.局部变量 临时事件, 子程序指针
.局部变量 临时标识, 整数型
状态表 = 取空白字节集 (256)
.如果真 (_判断所有按键状态 (状态表) = 假)
返回 ()
.如果真结束
功能键状态 = 选择 (状态表 [18 + 1] > 127, 1, 0) + 选择 (状态表 [17 + 1] > 127, 2, 0) + 选择 (状态表 [16 + 1] > 127, 4, 0) + 选择 (状态表 [91 + 1] > 127, 8, 0)
状态表 = 子字节集替换 (状态表, { 129 }, { 128 }, , )
状态表 = 子字节集替换 (状态表, { 1 }, { 0 }, , )
连续赋值 (0, 状态表 [18 + 1], 状态表 [17 + 1], 状态表 [16 + 1], 状态表 [91 + 1], 状态表 [161], 状态表 [162], 状态表 [163], 状态表 [164], 状态表 [165], 状态表 [166])
.计次循环首 (取数组成员数 (监视热键2_信息), i)
.如果真 (监视热键2_信息 [i].标识 ≠ 0)
.如果 (功能键状态 = 监视热键2_信息 [i].功能键)
缓存表 = 取空白字节集 (256)
.如果真 (监视热键2_信息 [i].其它键 ≠ 0)
缓存表 [监视热键2_信息 [i].其它键 + 1] = 128
.如果真结束
.如果 (监视热键2_信息 [i].状态)
.如果真 (监视热键2_信息 [i].普通键 ≠ 0)
缓存表 [监视热键2_信息 [i].普通键 + 1] = 128
.如果真结束
.如果真 (缓存表 = 状态表)
监视热键2_信息 [i].状态 = 假
临时事件 = 监视热键2_信息 [i].事件子程序
临时标识 = 监视热键2_信息 [i].标识
_关闭对象 (_创建线程 (0, 0, 临时事件, 临时标识, 0, 0))
.如果真结束
.否则
监视热键2_信息 [i].状态 = 缓存表 = 状态表
.如果结束
.否则
监视热键2_信息 [i].状态 = 假
.如果结束
.如果真结束
.计次循环尾 ()
.子程序 监视热键线程3, , , ' 本源码来自三叶资源网(www.sanye.cx)
.局部变量 状态表, 字节集
.局部变量 缓存表, 字节集
.局部变量 功能键状态, 整数型
.局部变量 i, 整数型
.局部变量 a, 字节型
.局部变量 b, 字节型
.局部变量 临时事件, 子程序指针
.局部变量 临时标识, 整数型
状态表 = 取空白字节集 (256)
.计次循环首 (256, i)
状态表 [i] = _判断按键状态2 (i - 1) \ 128
.计次循环尾 ()
功能键状态 = 选择 (_判断按键状态2 (18) > 127, 1, 0) + 选择 (_判断按键状态2 (17) > 127, 2, 0) + 选择 (_判断按键状态2 (16) > 127, 4, 0) + 选择 (_判断按键状态2 (91) > 127, 8, 0)
连续赋值 (0, 状态表 [18 + 1], 状态表 [17 + 1], 状态表 [16 + 1], 状态表 [91 + 1], 状态表 [161], 状态表 [162], 状态表 [163], 状态表 [164], 状态表 [165], 状态表 [166])
.计次循环首 (取数组成员数 (监视热键3_信息), i)
.如果真 (监视热键3_信息 [i].标识 ≠ 0)
.如果 (功能键状态 = 监视热键3_信息 [i].功能键)
缓存表 = 取空白字节集 (256)
.如果真 (监视热键3_信息 [i].其它键 ≠ 0)
缓存表 [监视热键3_信息 [i].其它键 + 1] = 1
.如果真结束
.如果 (监视热键3_信息 [i].状态)
.如果真 (监视热键3_信息 [i].普通键 ≠ 0)
缓存表 [监视热键3_信息 [i].普通键 + 1] = 1
.如果真结束
.如果真 (缓存表 = 状态表)
监视热键3_信息 [i].状态 = 假
临时事件 = 监视热键3_信息 [i].事件子程序
临时标识 = 监视热键3_信息 [i].标识
.如果 (监视热键3_信息 [i].直接触发)
_回调钩子 (临时事件, 临时标识, 0, 0, 0)
.否则
_关闭对象 (_创建线程 (0, 0, 临时事件, 临时标识, 0, 0))
.如果结束
.如果真结束
.否则
监视热键3_信息 [i].状态 = 缓存表 = 状态表
.如果结束
.否则
监视热键3_信息 [i].状态 = 假
.如果结束
.如果真结束
.计次循环尾 ()
.子程序 监视热键4_回调窗口函数, 整数型, , ' 本源码来自三叶资源网(www.sanye.cx)
.参数 窗口句柄, 整数型
.参数 消息, 整数型
.参数 参数1, 整数型
.参数 参数2, 整数型
.局部变量 返回值, 整数型
.局部变量 i, 整数型
.局部变量 上层, 字节型, 静态
.局部变量 下层, 字节型, 静态
.局部变量 固定状态表, 字节集, 静态
.局部变量 状态表, 字节集
.局部变量 功能键状态, 整数型
.局部变量 缓存表, 字节集
.局部变量 临时事件, 子程序指针
.局部变量 临时标识, 整数型
.计次循环首 (取数组成员数 (监视热键4_原窗口函数), i)
.如果真 (窗口句柄 = 监视热键4_所有窗口 [i])
返回值 = _回调钩子 (监视热键4_原窗口函数 [i], 窗口句柄, 消息, 参数1, 参数2) ' 把不需要处理的消息传递给默认窗口处理程序,使窗口能正常响应消息
跳出循环 ()
.如果真结束
.计次循环尾 ()
.判断开始 (固定状态表 = { } 或 消息 = 6 或 消息 = 7 或 消息 = 8)
上层 = 255
下层 = 0
固定状态表 = 取重复字节集 (255, 到字节集 (下层))
.判断 (消息 = 513)
固定状态表 [1] = 上层
.判断 (消息 = 514)
固定状态表 [1] = 下层
.判断 (消息 = 516)
固定状态表 [2] = 上层
.判断 (消息 = 517)
固定状态表 [2] = 下层
.判断 (消息 = 519)
固定状态表 [4] = 上层
.判断 (消息 = 520)
固定状态表 [4] = 下层
.判断 (消息 = 256 或 消息 = 260)
固定状态表 [参数1] = 上层
.判断 (消息 = 257 或 消息 = 261)
固定状态表 [参数1] = 下层
.默认
返回 (返回值)
.判断结束
状态表 = 固定状态表
功能键状态 = 选择 (状态表 [18] = 上层, 1, 0) + 选择 (状态表 [17] = 上层, 2, 0) + 选择 (状态表 [16] = 上层, 4, 0) + 选择 (状态表 [91] = 上层, 8, 0)
连续赋值 (0, 状态表 [18], 状态表 [17], 状态表 [16], 状态表 [91], 状态表 [160], 状态表 [161], 状态表 [162], 状态表 [163], 状态表 [164], 状态表 [165])
.计次循环首 (取数组成员数 (监视热键4_信息), i)
.如果真 (监视热键4_信息 [i].标识 ≠ 0)
.如果 (功能键状态 = 监视热键4_信息 [i].功能键)
缓存表 = 取重复字节集 (255, 到字节集 (下层))
.如果真 (监视热键4_信息 [i].其它键 ≠ 0)
缓存表 [监视热键4_信息 [i].其它键] = 上层
.如果真结束
.如果 (监视热键4_信息 [i].状态)
.如果真 (监视热键4_信息 [i].普通键 ≠ 0)
缓存表 [监视热键4_信息 [i].普通键] = 上层
.如果真结束
.如果真 (缓存表 = 状态表)
监视热键4_信息 [i].状态 = 假
临时事件 = 监视热键4_信息 [i].事件子程序
临时标识 = 监视热键4_信息 [i].标识
_关闭对象 (_创建线程 (0, 0, 临时事件, 临时标识, 0, 0))
.如果真结束
.否则
监视热键4_信息 [i].状态 = 缓存表 = 状态表
.如果结束
.否则
监视热键4_信息 [i].状态 = 假
.如果结束
.如果真结束
.计次循环尾 ()
返回 (返回值)
.子程序 取进程所有窗口, 整数型, , 通过进程ID取出指定进程的所有顶级窗口句柄(返回该进程中所有顶级窗口句柄的数目或第一个相关的可见顶级窗口,失败返回0)
.参数 进程ID, 整数型, , 窗口所在进程ID
.参数 所有窗口, 整数型, 可空 数组, 返回该进程中所有顶级窗口句柄. 如果不接收该参数,该子程序则返回第一个相关的可见顶级窗口
.局部变量 临时句柄, 整数型
.局部变量 临时进程ID, 整数型
.局部变量 临时窗口, 整数型, , "0"
临时句柄 = _获得句柄 (_取屏幕句柄 (), #GW_CHILD)
.判断循环首 (临时句柄 ≠ 0)
_取窗口进程ID (临时句柄, 临时进程ID)
.如果真 (临时进程ID = 进程ID)
.如果 (是否为空 (所有窗口))
.如果真 (_窗口是否可见 (临时句柄))
返回 (临时句柄)
.如果真结束
.否则
加入成员 (临时窗口, 临时句柄)
.如果结束
.如果真结束
临时句柄 = _获得句柄 (临时句柄, #GW_HWNDNEXT)
.判断循环尾 ()
所有窗口 = 临时窗口
返回 (取数组成员数 (所有窗口))
.子程序 枚举子窗口, 整数型, , 枚举指定窗口的所有子级窗口或控件句柄,支持不可见子窗口或子控件,返回句柄数目,失败返回0
.参数 父窗口句柄, 整数型, 可空, 指定父窗口句柄.如果父窗口为0,则取出所有顶级窗口(含不可见窗口)
.参数 句柄数组, 整数型, 可空 数组, 返回的所有窗口句柄数组
_枚举子窗口 (父窗口句柄, &枚举窗口过程, 0)
句柄数组 = 当前窗口列表
清除数组 (当前窗口列表)
返回 (取数组成员数 (句柄数组))
.子程序 枚举窗口过程, 逻辑型
.参数 hwnd, 整数型
.如果真 (hwnd ≠ 0)
加入成员 (当前窗口列表, hwnd)
返回 (真)
.如果真结束
返回 (假)
易语言监视热键列子
易语言热键源码
易语言 监视ctrl
易语言写监视热键
易语言监视热键写法
监视热键
易语言响应监视