.版本 2

.DLL命令 UnregisterHotKey, 整数型, , "UnregisterHotKey"
    .参数 hWnd, 整数型
    .参数 HotKeyID, 整数型

.DLL命令 RegisterHotKey, 整数型, "user32.dll", "RegisterHotKey"
    .参数 hWnd, 整数型
    .参数 id, 整数型
    .参数 fsModifoers, 整数型
    .参数 vk, 整数型

.DLL命令 SetWindowLongA, 子程序指针, , "SetWindowLongA"
    .参数 hWnd, 整数型
    .参数 nIndex, 整数型
    .参数 dwNewLong, 子程序指针

.DLL命令 CallWindowProcA, 整数型, , "CallWindowProcA"
    .参数 lpPrevWndFunc, 子程序指针
    .参数 hWnd, 整数型
    .参数 Msg, 整数型
    .参数 wParam, 整数型
    .参数 lParam, 整数型

.DLL命令 _控制鼠标, , "user32", "mouse_event"
    .参数 dwFlags, 整数型
    .参数 dx, 整数型
    .参数 dy, 整数型
    .参数 cButtons, 整数型
    .参数 dwExtraInfo, 整数型

.版本 2

.程序集 热键程序集
.程序集变量 父窗口句柄, 整数型
.程序集变量 默认窗口程序, 子程序指针
.程序集变量 热键数量, 整数型
.程序集变量 状态键数组, 整数型, , "0"
.程序集变量 主键数组, 整数型, , "0"
.程序集变量 处理热键子程序数组, 子程序指针, , "0"

.子程序 RegHotKey, 整数型, 公开, 注册成功返回热键ID,失败返回0
.参数 窗口句柄, 整数型
.参数 功能键状态, 整数型, , 1、Alt;2、Ctrl;4、Shitf;8、Win。若要两个或以上的状态键按则把它们的值相加.
.参数 键代码, 整数型
.参数 子程序指针, 子程序指针
.局部变量 HotKeyID

HotKeyID = RegisterHotKey (窗口句柄, 热键数量 + 1, 功能键状态, 键代码)
.如果真 (HotKeyID ≠ 0)
    热键数量 = 热键数量 + 1
    加入成员 (状态键数组, 功能键状态)
    加入成员 (主键数组, 键代码)
    加入成员 (处理热键子程序数组, 子程序指针)
    .如果真 (热键数量 = 1)
        默认窗口程序 = SetWindowLongA (窗口句柄, -4, &新窗口程序)
    .如果真结束
    返回 (热键数量)
.如果真结束
返回 (0)

.子程序 新窗口程序, 整数型
.参数 窗口句柄, 整数型
.参数 消息, 整数型
.参数 参数1, 整数型
.参数 参数2, 整数型

.如果真 (消息 = 786)
    返回 (CallWindowProcA (处理热键子程序数组 [参数1], 窗口句柄, 消息, 参数1, 参数2))  ' 把需要处理的消息传递给处理程序
.如果真结束
返回 (CallWindowProcA (默认窗口程序, 窗口句柄, 消息, 参数1, 参数2))  ' 把不需要处理的消息传递给默认窗口处理程序,使窗口能正常响应消息

.子程序 UnRegHotKey, 整数型, 公开, 成功返回非0,失败返回0
.参数 窗口句柄, 整数型
.参数 HotKeyID, 整数型

返回 (UnregisterHotKey (窗口句柄, HotKeyID))

热键句柄 = RegHotKey (取窗口句柄 (), 1, #Z键, &开始点击)
UnRegHotKey (取窗口句柄 (), 热键句柄)
RegisterHotKey
编辑

目录

1简介

2函数原型

3详细参数

4返回值

5注意事项

6支持系统版本

1简介

函数功能:该函数定义一个系统范围的热键。函数原型:BOOL RegisterHotKey(HWND hWnd,int id,UINT fsModifiers,UINT vk);

2函数原型

BOOL WINAPI RegisterHotKey(
__in_opt HWND hWnd,
__in int id,
__in UINT fsModifiers,
__in UINT vk
);

3详细参数

hWnd:
接收热键产生WM_HOTKEY消息的窗口句柄。若该参数NULL,传递给调用线程的WM_HOTKEY消息必须在消息循环中进行处理。
id:
定义热键的标识符。调用线程中的其他热键,不能使用同样的标识符。应用程序必须定义一个0X0000-0xBFFF范围的值。一个共享的动态链接库(DLL)必须定义一个范围为0xC000-0xFFFF的值(GlobalAddAtom函数返回该范围)。为了避免与其他动态链接库定义的热键冲突,一个DLL必须使用GlobalAddAtom函数获得热键的标识符。
fsModifoers:
定义为了产生WM_HOTKEY消息而必须与由nVirtKey参数定义的键一起按下的键。
该参数可以是如下值的组合:
含意
MOD_ALT
0x0001
按下的可以是任一Alt键。
MOD_SHIFT
0x0004
按下的可以是任一Shift键。
MOD_WIN
0x0008
按下的可以是任一Windows徽标键。
MOD_NOREPEAT
0x4000
更改热键行为,以便键盘自动重复不会产生多个热键通知。
MOD_CONTROL
0x0002
按下的可以是任一Ctrl键。
vk
 
定义热键的虚拟键码。

4返回值

若函数调用成功,返回一个非0值。若函数调用失败,则返回值为0。若要获得更多的错误信息,可以调用GetLastError函数。

5注意事项

当某键被接下时,系统在所有的热键中寻找匹配者。一旦找到一个匹配的热键,系统将把WM_HOTKEY消息传递给登记了该热键的线程的消息队列。该消息被传送到队列头部,因此它将在下一轮消息循环中被移去。该函数不能将热键同其他线程创建的窗口关联起来。
若为一热键定义的击键己被其他热键所定义,则RegisterHotKey函数调用失败。
若hWnd参数标识的窗口已用与id参数定义的相同的标识符登记了一个热键,则参数fsModifiers和vk的新值将替代这些参数先前定义的值。
Windows CE:Windows CE 2.0以上版本对于参数fsModifiers支持一个附加的标志位。叫做MOD_KEYUP。
若设置MOD_KEYUP位,则当发生键被按下或被弹起的事件时,窗口将发送WM_HOTKEY消息。
RegisterHotKey可以被用来在线程之间登记热键。

6支持系统版本

速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:不支持;头文件:winuser.h;库文件:Hotkey.lib。
UnregisterHotKey
编辑

目录

1函数功能

2函数原型

3参数

hWnd
id

4返回值

5备注

1函数功能

该函数释放调用线程先前登记的热键。

2函数原型

BOOL UnregisterHotKey(HWND hWnd,int id);

3参数

hWnd

与被释放的热键相关的窗口句柄。若热键不与窗口相关,则该参数为NULL。

id

定义被释放的热键的标识符。

4返回值

若函数调用成功,返回值不为0。若函数调用失败,返回值为0。若要获得更多的错误信息,可以调用GetLastError函数。

5备注

速查:Windows NT: 3.1及以上版本;Windows:95及以上版本;Windows CE:不支持;头文件:Winuser.h;库文件:user32.lib。

易语言- 定义一个系统范围的热键 RegisterHotKey UnregisterHotKey相关推荐

  1. 【百宝云网络验证】—易语言开发的系统

    [百宝云网络验证]-易语言开发的系统 小编今天重磅推出全新版本易语言网络验证系统! 本套系统新增很多特色功能,如防攻击.防破解.数据监控等等,重点是它还是免费的!免费的!免费的!重要的事重复三遍!废话 ...

  2. 易语言支持库系统学习笔记-----核心支持库

    学了易语言有一段时间了,虽然能写一般的程序,但是总是好像好了点什么,看教程的时候总能学到一些大大小小的以前没注意的小知识,所以想把易语言重新系统的自学一遍!这个是主要目的!这次以学习支持库为主 知识穿 ...

  3. c语言怎么表示字节集,用易语言写一个电子钢琴软件

    这只是一个窗口程序集,是整个软件的一部分,算是核心吧 易语言不同于C语言.java,易语言是全中文编写,说实话,我感觉中文编写还不如英文编写顺手.我感觉最简单的还是我当初自己学的Python语言. 下 ...

  4. 怎样用才c语言定义一个三位数,怎样编写一个c语言程序计算任意输入一个3位数的整数的各位数字之和。要求主函数包括输入输出和调用该函数。...

    点击查看怎样编写一个c语言程序计算任意输入一个3位数的整数的各位数字之和.要求主函数包括输入输出和调用该函数.具体信息 答:#include void main(){ int a,sum=0; pri ...

  5. 易语言 计算机取用户名,易语言GetUserNameA获取系统当前用户名

    GetUserNameA是advapi32里一个取得当前用户名称的函数. https://docs.microsoft.com/zh-cn/windows/win32/api/winbase/nf-w ...

  6. C语言-定义一个字符串

    C语言可以使用字符数组来处理字符串. 几种常用方式: 1.char str[] = { "zhang" };  char str[] = "zhang" ; 2 ...

  7. 用Java语言定义一个整数定义的数组,求奇数个数和偶数个数。

    ##[Java] 定义一个整数定义的数组,求奇数个数和偶数个数. /*作者:龙蝶 *日期:2020年4月4日 */public clsss Array{public static void main( ...

  8. java语言定义一个具备栈功能的类_Java学习笔记 第二章 Java语言基础

    第二章 JAVA语言基础 一.关键字 1.关键字的定义和特点 定义:被Java语言赋予了特殊含义的单词 特点:关键字中所有的字母都为小写 2.用于定义数据类型的关键字 c;ass  interface ...

  9. 用c语言定义一个分式方程,计算机C语言实验报告(00001)

    1.C语言实验报告专 业 _年 级 _学 号 _学生姓名 _指导老师 _华中师范大学信息管理系编I 实验要求1每次实验中有若干习题,每个学生至少应该完成其中的三道习题.2上机之前应作好充分的准备工作, ...

最新文章

  1. linux系统一直循环登录界面,Ubuntu 14.04解决登录界面无限循环的方法
  2. 如何查找Authorization object在哪些ABAP代码里使用到
  3. 内存只有100G,要全表扫描一个200G大表,会不会把内存用完?
  4. php如何编写应用程序,编写安全 PHP 应用程序的七个习惯
  5. 调整cisco参数设置
  6. javascript-Global与Math对象
  7. Python之Pandas:pandas.DataFrame.to_csv函数的简介、具体案例、使用方法详细攻略
  8. [置顶] hdu 1890 伸展树区间翻转
  9. v8声卡怎么录制唱歌_【绝对干货】关于声卡你需要知道的几点知识(上)
  10. linux监听远程ip,设计一个脚本,监控远程的一台机器(假设ip为123.23.11.21)的存活状态,当发现宕机时发一封...
  11. 第三篇.python编辑器和集成环境01
  12. UnixLinux技术文章目录(2015-12-22更新)
  13. oracle sga pga mysql_oracle实例内存(SGA和PGA)调整-xin
  14. 容器编排技术 -- Kubernetes kubectl rollout pause 命令详解
  15. Linux---基础指令
  16. 第二单元答案计算机基础,《计算机基础》资源包-第二单元课后题答案.docx
  17. php如何架构设计,PHP – 架构设计帮助 – OOP固体原则
  18. kickstart无人值守安装Ubuntu1804系统
  19. matlab的小技巧
  20. 小程序 腾讯兔小巢 对接

热门文章

  1. Python基金数据实战分析:偏债混合基金篇
  2. C语言求最大公约数常见思路
  3. Docker启动异常之服务器非法重启,导致Docker启动失败
  4. Apache Ranger-2.2 详细安装步骤
  5. multiusb key找不到驱动程序_尤大-Vue中为什么不建议用index作为key?
  6. Camstar MES 5.8 發現Ajax事件失效
  7. python: float64与float32转换、压缩比较与转换偏差
  8. 三种js轮播实现方式详解(看一遍就会)
  9. 安卓rom开发教程!安卓工程师跳槽经验分享,吐血整理
  10. 7. STM32——定时器中断(1秒闪烁灯)