键盘鼠标——使用示例
应用程序应接受来自键盘和鼠标的用户输入。系统会把输入事件以消息的形式发布到其窗口过程。
初级程序默认在“窗体消息”这个程序段接收键盘和鼠标输入。键盘输入模型 系统通过使用用户或应用程序当前选择的特定于语言的键盘布局,提供与语言无关的键盘支持。 键盘设备驱动程序从键盘接收扫描代码,这些代码将发送到键盘布局, 在键盘布局中,扫描代码将转换为消息并发布到应用程序中的相应窗口。 分配给键盘上每个键的唯一值称为扫描代码,是键盘上键的设备相关标识符。 当用户键入某个键时,键盘会生成两个扫描代码,一个在用户按下该键时生成,另一个在用户松开该键时生成。 键盘设备驱动程序解释扫描代码并将其转换(映射)为虚拟键代码,这是一个由系统定义的独立于设备的值,用于标识键的用途。 转换扫描代码后,键盘布局会创建一条消息,其中包含扫描代码、虚拟键代码和有关击键的其他信息, 然后将该消息置于系统消息队列中。 系统将该消息从系统消息队列中删除,并将其发布到相应线程的消息队列。 最终,线程的消息循环会删除该消息,并将其传递给相应的窗口过程进行处理。
键盘焦点和激活 系统将键盘消息发布到创建具有键盘焦点的窗口的前台线程的消息队列。 键盘焦点是窗口的临时属性。 系统将键盘焦点从一个窗口移动到另一个窗口,从而在显示器上的所有窗口之间共享键盘。 具有键盘焦点的窗口(从创建它的线程的消息队列)接收所有键盘消息,直到焦点更改为其他窗口。 线程可以调用 焦点窗口 函数来确定哪个窗口(如果有)当前具有键盘焦点。 线程可以通过调用 设置焦点 函数将键盘焦点赋予其中一个窗口。 将键盘焦点从一个窗口更改为另一个窗口时,系统会向失去焦点的窗口发送 失去焦点 消息, 然后向获得焦点的窗口发送 获得焦点 消息。 键盘焦点的概念与活动窗口的概念相关。 活动窗口是用户当前正在使用的顶级窗口。 具有键盘焦点的窗口要么是活动窗口,要么是活动窗口的子窗口。 为了帮助用户识别活动窗口,系统会将其置于 Z 顺序的顶部并突出显示其标题栏(如果有)和边框。 用户可以通过单击顶级窗口、使用 ALT+TAB 或 Alt+ESC 组合键选择它或从“任务列表”中选择它来激活该窗口。 线程可以使用 激活窗口 函数激活顶级窗口。 它可以使用 活动窗口 函数确定所创建的顶级窗口是否处于活动状态。 当一个窗口停用而另一个窗口被激活时,系统会发送 窗口激活 消息。 如果正在停用窗口,则 ③参数 参数的低序字为零,如果正在激活窗口,则为非零。 默认窗口过程收到 窗口激活 消息后,便会将键盘焦点设置到活动窗口。 若要阻止键盘和鼠标输入事件到达应用程序,请使用 阻塞输入。 请注意,阻塞输入 函数不会干扰异步键盘输入状态表。 这意味着在输入被阻止时调用 发送输入 函数将更改异步键盘输入状态表。
系统和非系统击键消息 按下键会使 键盘按下 或 ALT键按下 消息被放入附加到具有键盘焦点的窗口的线程消息队列中。 松开键会使 键盘按下 或 ALT键松开 消息被放入队列中。 按下键和松开键消息通常是相伴发生的,但如果用户长按一个键,以致键盘的自动重复功能启动, 则系统会连续生成许多 键盘按下 或 ALT键按下 消息。 然后,当用户松开键时,它会生成一条 键盘按下 或 ALT键松开 消息。 系统区分系统击键和非系统击键。 系统击键会生成系统击键消息 ALT键按下 和 ALT键松开。 系统击键消息主要供系统而不是应用程序使用,过程将其传递给 处理窗口 函数进行处理。 非系统击键会生成非系统击键消息 键盘按下 和 键盘松开。 非系统击键消息供应用程序窗口使用;处理窗口 函数不对其执行任何操作。 窗口过程可以丢弃它不需要的任何非系统击键消息。
描述的虚拟键代码 击键消息的 ③参数 包含按下或松开的键的虚拟键代码。 窗口过程根据虚拟键代码的值处理或忽略击键消息。 典型的窗口过程仅处理它接收到的击键消息的一小部分,而忽略其余部分。 典型的窗口过程不处理来自字符键的击键消息。
判断(消息) 为 键盘按下 获取键值(参数) 为 键盘松开 获取键值(参数) 为 键入字符 获取键值(参数) 在键盘按下的动作事件里,把参数提交给获取键值的程序段,也就是键值 程序段 获取键值(键码) 判断(键码)为 37 左方向键 为 38 上方向键 为 65 字母A键
击键消息标志 击键消息的 ④数据 参数包含有关生成该消息的击键的附加信息。 此信息包括重复计数、扫描代码、扩展键标志、上下文代码、上一个键状态标志和转换状态标志。 应用程序可以从 ④数据 的高位字中获取以下击键标志。
英文名字 | 常量数值 | 释义 |
KF_EXTENDED | 0x0100 | 操作扩展键标志。 |
KF_DLGMODE | 0x0800 | 操作对话框模式标志,该标志指示对话框是否处于活动状态。 |
KF_MENUMODE | 0x1000 | 操作菜单模式标志,该标志指示菜单是否处于活动状态。 |
KF_ALTDOWN | ||
0x2000 | 操作上下文代码标志。 | |
KF_REPEAT | 0x4000 | 操作上一个键状态标志。 |
KF_UP | 0x8000 | 操作转换状态标志。 |
键盘输入通知
中文名字 | 常量数值 | 英文名称 | 释义 |
窗口激活 | 6 | WM_ACTIVATE | 一个窗口被激活或失去激活状态。③参数:0关闭,1非鼠标激活,2鼠标激活;④数据:参数为0是激活窗口,非0是停用的窗口 |
获得焦点 | 7 | WM_SETFOCUS | 将键盘焦点转向一个窗口。③参数:失去焦点的窗口,可为0;④数据:0 |
失去焦点 | 8 | WM_KILLFOCUS | 使一个窗口失去焦点。③参数:接收焦点的窗口,可为0;④数据:0 |
键盘按下 | $0100 | WM_KEYDOWN | 当一个非系统按键被按下时( |
键盘松开 | $0101 | WM_KEYUP | 当一个非系统按键被释放弹起时( |
键入字符 | $0102 | WM_CHAR | 按下某按键,并已发出按下、松开消息,本消息包含被按下的按键的字符码。③参数:字码;④数据:扫描码 |
敲击按键 | $0103 | WM_DEADCHAR | \"死字符\"消息,当使用翻译消息函数翻译WM_KEYUP消息时,发送本消息给拥有键盘焦点的窗口。③参数:键码;④数据:扫描码 |
ALT键按下 | $0104 | WM_SYSKEYDOWN | 当用户按住 |
ALT键松开 | $0105 | WM_SYSKEYUP | 当用户释放一个按键的同时 |
ALT键字符 | $0106 | WM_SYSCHAR | 当WM_SYSKEYDOWN消息被翻译消息函数翻译后,发送本消息给拥有焦点的窗口,注: |
ALT敲字符 | $0107 | WM_SYSDEADCHAR | \"死字符\"消息,当使用翻译消息函数翻译WM_SYSKEYDOWN消息时,发送本消息给拥有键盘焦点的窗口。③参数:键码;④数据:扫描码 |
键入宽字 | $0109 | WM_UNICHAR | 此消息包含按下的键的字符代码。类似于键入字符,但它使用宽字符转换格式UTF-32,而键入字符使用 UTF-16。③参数:键码;④数据:扫描码 |
系统命令 | $0112 | WM_SYSCOMMAND | 当用户选择一条系统菜单命令、用户最大化或最小化或还原或关闭时。③参数:命令;④数据:点菜单时鼠标位置 |
热键消息 | $312 | WM_HOTKEY | 当用户按下由注册热键函数注册的热键时。③参数:-1窗口,-2桌面;④数据:低字=1Alt,2CTRL,4SHIFT,8WIN;高字=键码 |
程序命令 | $319 | WM_APPCOMMAND | 用户点击应用程序命令按钮或键盘命令键(如导航刷新搜索)③参数:窗口;④数据:命令/设备/按键 |
鼠标光标 当用户移动鼠标时,系统会在屏幕上移动一个称为鼠标光标的位图。 鼠标光标包含一个称为热点的单像素点,系统跟踪该点并将其识别为光标的位置。 当鼠标事件发生时,包含热点的窗口通常会接收到事件生成的鼠标消息。 窗口不需要处于活动状态或具有键盘焦点来接收鼠标消息。 整数 光标=载入光标(0,32649);//加载系统固有的光标,32649是手形光标 修改类值(按钮1,窗类光标,光标);//修改按钮1的光标为手形光标 删除对象(光标);//删除加载的光标对象,从而释放读取光标使用的内存 系统维护一个控制鼠标速度的变量,即光标在用户移动鼠标时移动的距离。 可以使用带有 SPI_GETMOUSE 或 SPI_SETMOUSE 标志的 SystemParametersInfo 函数来检索或设置鼠标速度。 消息参数 工作区鼠标消息的 ④数据 参数指示光标热点的位置。 低序字(16位)表示热点的 x 坐标,高序字(16位)表示 y 坐标。 在工作区坐标系中,屏幕上的所有点都是相对于工作区左上角的坐标 (0,0) 指定的。 在窗体消息程序段里 判断(消息) 为 鼠标移动,按下左键,按下右键;//客户区的鼠标消息都可以通过④数据得到坐标值 {左=数据 & 0xFFFF;//获取数据的低16位x坐标值 上=数据 >> 16};//数据右移16位得到y坐标值 ③参数 参数包含指示其他鼠标按钮以及 CTRL 和 SHIFT 键在鼠标事件发生时的状态的标志。 可以是以下值的组合。
英文名字 | 数值 | 释义 |
MK_LBUTTON | 1 | 按下了鼠标左键。 |
MK_RBUTTON | 2 | 按下了鼠标右键。 |
MK_SHIFT | 4 | 按下了 Shift 键。 |
MK_CONTROL | 8 | 按下了 Ctrl 键。 |
MK_MBUTTON | 16 | 按下了鼠标中键。 |
MK_XBUTTON1 | 32 | 按下了第一个 X 按钮。 |
MK_XBUTTON2 | 64 | 按下了第二个 X 按钮。 |
非工作区鼠标消息 当鼠标事件发生在窗口的任何部分(工作区除外)时,窗口会收到非工作区鼠标消息。 窗口的非工作区由边框、菜单栏、标题栏、滚动条、窗口菜单、最小化按钮和最大化按钮组成。 系统生成非工作区消息,主要供其自身使用。 例如,当光标热点移动到窗口的边框时,系统使用非工作区消息将光标更改为双向箭头。 窗口必须将非工作区鼠标消息传递到 处理窗口 函数,才能利用内置鼠标接口。 非工作区鼠标消息的 ④数据 参数是一个包含光标热点的 x 和 y 坐标的结构。 与工作区鼠标消息的坐标不同,坐标以屏幕坐标而不是工作区坐标指定。 在屏幕坐标系中,屏幕上的所有点都是相对于屏幕左上角坐标 (0,0) 指定。 ③参数 参数包含一个命中测试值,该值指示鼠标事件在非工作区中发生的位置。 每当发生鼠标事件时,系统都会向包含光标热点的窗口或捕获鼠标的窗口发送 光标离开 消息。 ③参数:命中测试值可以是以下值之一。
英文名字 | 数值 | 释义 |
HTERROR | -2 | 在屏幕背景上或窗口之间的分割线上(处理窗口 函数会生成系统蜂鸣音以指示错误)。 |
HTTRANSPARENT | -1 | 在当前被同一线程中的另一窗口覆盖的窗口中。 |
HTNOWHERE | 0 | 在屏幕背景上,或在窗口之间的分隔线上。 |
HTCLIENT | 1 | 在工作区中。 |
HTCAPTION | 2 | 在标题栏中。 |
HTSYSMENU | 3 | 在子窗口的“系统”菜单或“关闭”按钮中。 |
HTGROWBOX | 4 | 在大小框中(与 HTSIZE 相同)。 |
HTSIZE | 4 | 在大小框中(与 HTGROWBOX 相同)。 |
HTMENU | 5 | 在菜单中。 |
HTHSCROLL | 6 | 在水平滚动条中。 |
HTVSCROLL | 7 | 在垂直滚动条中。 |
HTMINBUTTON | 8 | 在“最小化”按钮中。 |
HTREDUCE | 8 | 在“最小化”按钮中。 |
HTZOOM | 9 | 在“最大化”按钮中。 |
HTMAXBUTTON | 9 | 在“最大化”按钮中。 |
HTLEFT | 10 | 在窗口的左边框中。 |
HTRIGHT | 11 | 在窗口的右边框中。 |
HTTOP | 12 | 在窗口的上水平边框中。 |
HTTOPLEFT | 13 | 在窗口边框的左上角。 |
HTTOPRIGHT | 14 | 在窗口边框的右上角。 |
HTBOTTOM | 15 | 在窗口的下水平边框中。 |
HTBOTTOMLEFT | 16 | 在窗口边框的左下角。 |
HTBOTTOMRIGHT | 17 | 在窗口边框的右下角。 |
HTBORDER | 18 | 在没有大小调整边框的窗口边框中。 |
HTOBJECT | 19 | 对象。 |
HTCLOSE | 20 | 在“关闭”按钮中。 |
HTHELP | 21 | 在“帮助”按钮中。 |
鼠标输入通知
中文名字 | 常量数值 | 英文名称 | 释义 |
捕获光标 | $0020 | WM_SETCURSOR | 若鼠标光标在某窗口内移动且鼠标没被捕获时,就会发送本消息给某个窗口。③参数:窗口;④数据:命中消息 |
拖曳后窗 | $0021 | WM_MOUSEACTIVATE | 当鼠标光标在某个未激活窗口内,而用户正按着鼠标的某个键时,会发送本消息给当前窗口。③参数:父窗;④数据:命中消息; 返回值:1激活窗口不丢弃鼠标,2激活丢弃鼠标,3不激活不丢弃,4不激活丢弃鼠标 |
点击右键 | $007B | WM_CONTEXTMENU | 当用户在某窗口中点击右键就发送本消息给该窗口,设置右键菜单。③参数:窗口;④数据:屏幕坐标x/y |
命令事件 | $0111 | WM_COMMAND | 用户选择一条菜单命令项或某控件发送一条通知消息给其父窗,或某快捷键被翻译时,本消息被发送。③参数:低位=编号,高位=事件;④数据:控件;菜单高位0,快捷键高位1,两者数据都是0 |
系统命令 | $0112 | WM_SYSCOMMAND | 当用户选择一条系统菜单命令、用户最大化或最小化或还原或关闭时。③参数:命令;④数据:点菜单时鼠标位置 |
程序命令 | $319 | WM_APPCOMMAND | 用户点击应用程序命令按钮或键盘命令键(如导航刷新搜索)③参数:窗口;④数据:命令/设备/按键 |
鼠标移动 | $0200 | WM_MOUSEMOVE | 当鼠标在窗口客户区移动时。③参数:1左键,2右键,4SHIFT,8CTRL,$10中键,$20=X1,$40=X2;④数据:坐标x/y; |
按下左键 | $0201 | WM_LBUTTONDOWN | 当鼠标左键在窗口客户区按下。③参数:1左键,2右键,4SHIFT,8CTRL,$10中键,$20=X1,$40=X2;④数据:坐标x/y; |
释放左键 | $0202 | WM_LBUTTONUP | 当鼠标左键在窗口客户区放开。③参数:1左键,2右键,4SHIFT,8CTRL,$10中键,$20=X1,$40=X2;④数据:坐标x/y; |
双击左键 | $0203 | WM_LBUTTONDBLCLK | 当鼠标左键在窗口客户区双击。③参数:1左键,2右键,4SHIFT,8CTRL,$10中键,$20=X1,$40=X2;④数据:坐标x/y; |
按下右键 | $0204 | WM_RBUTTONDOWN | 当鼠标右键在窗口客户区按下。③参数:1左键,2右键,4SHIFT,8CTRL,$10中键,$20=X1,$40=X2;④数据:坐标x/y; |
释放右键 | $0205 | WM_RBUTTONUP | 当鼠标右键在窗口客户区放开。③参数:1左键,2右键,4SHIFT,8CTRL,$10中键,$20=X1,$40=X2;④数据:坐标x/y; |
双击右键 | $0206 | WM_RBUTTONDBLCLK | 当鼠标右键在窗口客户区双击。③参数:1左键,2右键,4SHIFT,8CTRL,$10中键,$20=X1,$40=X2;④数据:坐标x/y; |
按下中键 | $0207 | WM_MBUTTONDOWN | 当鼠标中键在窗口客户区按下。③参数:1左键,2右键,4SHIFT,8CTRL,$10中键,$20=X1,$40=X2;④数据:坐标x/y; |
释放中键 | $0208 | WM_MBUTTONUP | 当鼠标中键在窗口客户区放开。③参数:1左键,2右键,4SHIFT,8CTRL,$10中键,$20=X1,$40=X2;④数据:坐标x/y; |
双击中键 | $0209 | WM_MBUTTONDBLCLK | 当鼠标中键在窗口客户区双击。③参数:1左键,2右键,4SHIFT,8CTRL,$10中键,$20=X1,$40=X2;④数据:坐标x/y; |
滚轮转动 | $020A | WM_MOUSEWHEEL | 当滚动鼠标滚轮时发送。③参数:高位120向后,-120向前;低位1左键,2右键,4SHIFT,8CTRL,$10中键,$20=X1,$40=X2;④数据:坐标x/y; |
侧键按下 | $020B | WM_XBUTTONDOWN | 用户按下X按钮时发布。③参数:高位1第一个X按钮,2第二个X按钮;低位1左键,2右键,4SHIFT,8CTRL,$10中键,$20=X1,$40=X2;④数据:坐标x/y; |
侧键松开 | $020C | WM_XBUTTONUP | 用户松开X按钮时发布。③参数:高位1第一个X按钮,2第二个X按钮;低位1左键,2右键,4SHIFT,8CTRL,$10中键,$20=X1,$40=X2;④数据:坐标x/y; |
侧键双击 | $020D | WM_XBUTTONDBLCLK | 用户双击X按钮时发布。③参数:高位1第一个X按钮,2第二个X按钮;低位1左键,2右键,4SHIFT,8CTRL,$10中键,$20=X1,$40=X2;④数据:坐标x/y; |
鼠标滚轮 | $020E | WM_MOUSEHWHEEL | 当鼠标的水平滚轮倾斜或旋转时发送。③参数:高位120向后,-120向前;低位1左键,2右键,4SHIFT,8CTRL,$10中键,$20=X1,$40=X2;④数据:坐标x/y; |
失去鼠标 | $215 | WM_CAPTURECHANGED | 当它失去捕获的鼠标时,发送本消息给窗口。③参数:0;④数据:窗口 |
移动消息 | $216 | WM_MOVING | 当用户在移动窗口时发送本消息,通过本消息应用程序以监视窗口大小和位置,也可修改它们。③参数:0;④数据:矩形类 |
拖放文件 | $233 | WM_DROPFILES | 鼠标拖放时,放下事件产生时发送本消息,比如:文件拖放功能。③参数:文件;④数据:0 |
鼠标经外 | $2A0 | WM_NCMOUSEHOVER | 当光标悬停在窗口的非工作区上的达到指定时间发送本消息。③参数:命中值;④数据:坐标类; |
鼠标经过 | $2A1 | WM_MOUSEHOVER | 当光标悬停在窗口的工作区上的达到指定时间发送本消息。③参数:1左键,2右键,4SHIFT,8CTRL,$10中键,$20=X1,$40=X2;④数据:坐标x/y; |
鼠标离外 | $2A2 | WM_NCMOUSELEAVE | 当光标离开之前调用 TrackMouseEvent 中指定的窗口的非工作区时发送本消息。③参数:0;④数据:0; |
鼠标离开 | $2A3 | WM_MOUSELEAVE | 鼠标离开控件时,触发发送本消息。③参数:1左键,2右键,4SHIFT,8CTRL,$10中键,$20=X1,$40=X2;④数据:坐标x/y; |
键盘鼠标——结构类型
中文名字 | 英文名称 | 长度 | 作用解释 |
鼠标点类 | MOUSEINPUT | 24 | 用来表示鼠标点位置。 |
鼠标点类——成员表 | |||
---|---|---|---|
左 | dx | 整数 | 鼠标的 x 坐标或移动的像素数。 |
顶 | dy | 整数 | 鼠标的 y 坐标或移动的像素数。 |
方向 | mouseData | 整数 | 取按键时1是左键,2是右键,取滚轮时正值向前滚动,负数向后滚动 |
标志 | dwFlags | 整数 | 一组位标志。1鼠标移动,2按下左键,4松开左键,8按下右键,16松开右键,32按下中键,64松开是中键, 128按下X键,256松开X键,$800滚轮移动,$1000滚轮水平移动,$4000桌面坐标,$8000绝对坐标 |
时间 | time | 整数 | 鼠标坐标的时间戳。(以毫秒为单位) |
扩展 | dwExtraInfo | 整数 | 与此坐标关联的其他信息。 |
中文名字 | 英文名称 | 长度 | 作用解释 |
移动点类 | MOUSEMOVEPOINT | 16 | 用来表示鼠标移动位置。 |
移动点类——成员表 | |||
---|---|---|---|
左 | x | 整数 | 鼠标的 x 坐标。 |
顶 | y | 整数 | 鼠标的 y 坐标。 |
时间 | time | 整数 | 鼠标坐标的时间戳。(以毫秒为单位) |
扩展 | dwExtraInfo | 整数 | 与此坐标关联的其他信息。 |
中文名字 | 英文名称 | 长度 | 作用解释 |
键盘类 | KEYBDINPUT | 16 | 包含有关模拟键盘事件的信息。 |
键盘类——成员表 | |||
---|---|---|---|
键码 | wVkScan | 整数 | 虚拟密钥代码和密钥的硬件扫描代码。如果 标志 指定 4或8 则低位是0,高位宽字符 |
标志 | dwFlags | 整数 | 指定击键的各个方面。1扫描码两字节(E0xx),2释放密钥(否则按键),4合成宽字符键,8扫描码 |
时间 | time | 整数 | 鼠标坐标的时间戳。(以毫秒为单位) |
扩展 | dwExtraInfo | 整数 | 与此坐标关联的其他信息。 |
中文名字 | 英文名称 | 长度 | 作用解释 |
硬件输入类 | HARDWAREINPUT | 8 | 包含有关由键盘或鼠标以外的输入设备生成的模拟消息的信息。 |
硬件输入类——成员表 | |||
---|---|---|---|
消息 | uMsg | 整数 | 输入硬件生成的消息。 |
参数 | wParam | 整数 | 消息的参数值。 |
键盘鼠标——功能函数
中文名称 | 英文名称 | 示例 | 作用 |
激活布局 | ActivateKeyboardLayout | 激活布局(处理,标志) | 接受输入法区域标识,用于标识语言环境以及键盘的物理布局。处理=1下个;0上个;标志=8开头排序 $40000000重置 $10000大写锁定 $100激活窗口焦点 |
阻塞输入 | BlockInput | 阻塞输入(真) | 阻塞键盘及鼠标事件到达应用程序。参数为真将被阻塞,参数为假不被阻塞。 |
原始输入 | DefRawInputProc | 原始输入(0,0,大小) | 仅检查原始输入结构的预期大小。 |
拖曳检测 | DragDetect | 拖曳检测(窗口,初始坐标) | 捕获鼠标并跟踪其移动,直到用户释放左键、按 ESC 键或将鼠标移动到拖动矩形外的指定点。 |
控制窗口 | EnableWindow | 控制窗口(窗口,真) | 启用或禁用鼠标和键盘输入到指定的窗口或控件 |
活动窗口 | GetActiveWindow | 窗口=活动窗口 | 获得与当前进程的活动窗口 |
激活窗口 | SetActiveWindow | 激活窗口(窗口) | 激活一个位于前台的窗口,并置顶.后台窗口无效. |
鼠标窗口 | GetCapture | 窗口=鼠标窗口 | 取得捕获了鼠标的窗口(如果存在)的句柄 |
捕获鼠标 | SetCapture | 捕获鼠标(窗口) | 让指定窗口捕获鼠标,所有的鼠标输入都被定向到该窗口 |
焦点窗口 | GetFocus | 窗口=焦点窗口 | 获取具有键盘焦点的窗口句柄 |
设置焦点 | SetFocus | 设置焦点(窗口) | 将键盘焦点设置为指定的窗口 |
取代码页 | GetKBCodePage | 页码=取代码页 | 返回当前代码页。 |
按键开关 | GetAsyncKeyState | 状态=按键开关(键码) | 确定在调用函数时键是打开还是关闭 |
键名密钥 | GetKeyNameTextA | 键名密钥(键值,名称,长度) | 检索表示键名称的字符串。 |
按键状态 | GetKeyState | 状态=按键状态(键码) | 检索指定虚拟键的状态。状态指定键是向上、向下还是切换 |
取输入法 | GetKeyboardLayout | 标识=取输入法(线程) | 检索活动输入法区域设置标识符(以前称为键盘布局) |
输入法表 | GetKeyboardLayoutList | 输入法表(数量,表组) | 检索输入法区域设置标识符到指定的缓冲区。 |
输入法名 | GetKeyboardLayoutNameA | 输入法名(名称) | 检索系统的活动输入法区域设置标识符的名称。 |
键盘状态 | GetKeyboardState | 键盘状态(键表) | 将 256 个虚拟密钥的状态复制到指定的缓冲区。 |
输入键盘 | SetKeyboardState | 输入键盘(键表) | 将键盘键状态数组复制到调用线程的键盘输入状态表中。 |
输入时间 | GetLastInputInfo | 输入时间(信息) | 检索上次输入事件的时间。 |
键盘类型 | GetKeyboardType | 信息=键盘类型(种类) | 检索有关当前键盘的信息。种类0=键盘 1子键盘 2功能键 |
双击时间 | GetDoubleClickTime | 毫秒=双击时间 | 获得鼠标当前的双击时间间隔的毫秒数 |
设置双击 | SetDoubleClickTime | 设置双击(毫秒) | 设置鼠标当前的双击时间间隔的毫秒数 |
鼠标轨迹 | GetMouseMovePoints | 鼠标轨迹(大小,结构,缓冲,点数,方式) | 用来最多 64 个鼠标或笔的先前坐标的历史记录。方式=1分辨率 2像素点 |
开输入法 | LoadKeyboardLayoutA | 开输入法(名称,标识) | 将新的输入法区域设置标识符加载到系统中。标识=1激活当前 2放到首选 8放到开头 $80激活刚才 $10替换已有 |
关输入法 | UnloadKeyboardLayout | 关输入法(标识) | 卸载输入法区域设置标识符 |
转换键码 | MapVirtualKeyA | 值=转换键码(代码,翻译) | 将虚拟键代码映射为扫描代码或字符值,或将扫描代码转换为虚拟键代码。翻译=0虚拟密钥转扫描码 1扫描码转虚拟键码 2虚拟键码转字符值加密钥 3扫描码转虚拟键码分左右键 |
模拟按键 | keybd_event | 模拟按键(键码,硬码,动作,附加) | 合成击键。系统会生成键盘按下和键盘松开的动作消息。已被淘汰请改用 发送输入 |
模拟鼠标 | mouse_event | 模拟鼠标(动作,左,上,数据,附加) | 合成鼠标运动和按钮单击。功能已被取代。请改用 发送输入 |
键值扫描 | OemKeyScan | 键值扫描(字符值) | 将 OEMASCII 代码 0 到 0x0FF 映射到 OEM 扫描代码(低序字)和偏移状态(高序字)。 |
发送输入 | SendInput | 发送输入(数量,数组,大小) | 合成击键、鼠标动作和按钮单击。 |
工具通知 | RegisterForTooltipDismissNotification | 工具通知(窗口,标志) | 注册或注销窗口以接收关闭其工具提示窗口的通知。标志:0=注册,1注销 |
注册热键 | RegisterHotKey | 注册热键(窗口,标识,修饰,键码) | 定义当前线程的热键 |
注销热键 | UnregisterHotKey | 注销热键(窗口,标识) | 释放当前线程的热键 |
释放鼠标 | ReleaseCapture | 释放鼠标 | 从当前线程中的窗口释放鼠标捕获,并恢复正常的鼠标输入处理 |
换左右键 | SwapMouseButton | 换左右键(真) | 反转(真)或恢复(假)鼠标左键和右键的含义。 |
鼠标事件 | TrackMouseEvent | 鼠标事件(事件类) | 当鼠标指针离开窗口或将鼠标悬停在窗口上一段指定时间时寄送消息。 |
键转字符 | ToAscii | 键转字符(键码,扫描,状态,@字符,标志) | 将指定的虚拟键代码和键盘状态转换为相应的字符。标志:1菜单处于活动,0不活动 |
键转多字 | ToAscii | 键转多字(键码,扫描,状态,@字符,标志,区域) | 将指定的虚拟键代码和键盘状态转换为相应的字符。标志:1菜单处于活动,0不活动 |
键转宽字 | ToAscii | 键转宽字(键码,扫描,状态,@宽字,大小,标志) | 将指定的虚拟键代码和键盘状态转换为相应的宽字符。标志:1菜单处于活动,0不活动 |
键码宽字 | ToAscii | 键码宽字(键码,扫描,状态,@宽字,大小,标志,区域) | 将指定的虚拟键代码和键盘状态转换为相应的宽字符。标志:1菜单处于活动,0不活动 |
转虚拟键 | VkKeyScanA | 键码=转虚拟键(字符) | 将字符转换为当前键盘的相应虚拟键代码和 shift 状态。 |
字转键码 | VkKeyScanExA | 键码=转虚拟键(字符,输入法) | 将字符转换为当前键盘的相应虚拟键代码和 shift 状态。由输入法标识的物理键盘布局来转换字符。 |
等待输入 | WaitForInputIdle | 等待输入(进程,毫秒) | 等待指定的进程完成对其初始输入以及用户输入,直到超时间隔过去。 |
中文名字 | 英文名称 | 长度 | 作用解释 |
坐标类 | POINT | 8 | 用来存储坐标位置的信息 |
坐标类——成员表 | |||
---|---|---|---|
中文 | 英文 | 类型 | 作用解释 |
左 | x | 整数 | 水平坐标位置。 |
顶 | y | 整数 | 垂直坐标位置。 |
中文名字 | 英文名称 | 长度 | 作用解释 |
矩形类 | RECT | 16 | 用来表示一个矩形框的四条边位置。 |
矩形类——成员表 | |||
---|---|---|---|
左 | left | 整数 | 指定矩形框左上角的x坐标 |
顶 | top | 整数 | 指定矩形框左上角的y坐标 |
宽 | right | 整数 | 指定矩形框右下角的x坐标 |
高 | bottom | 整数 | 指定矩形框右下角的y坐标 |
中文名字 | 英文名称 | 长度 | 作用解释 |
快捷键类 | ACCEL | 6 | 包含有显示一个消息(对话框信息)的数据结构。 |
快捷键类——成员表 | |||
---|---|---|---|
行为 | fVirt | 整形 | 加速器行为。$10同时按住 ALT 键,8同时按住 CTRL 键,4同时按住 Shift 键,2不突出显示顶级菜单 |
键值 | key | 整形 | 可以是虚拟键代码或字符代码。 |
标识 | cmd | 整形 | 快捷键标识符。 |