VB SendKeys语句详解 将一个或多个按键消息发送到活动窗口,就如同在键盘上进行输入一样。 语法 SendKeys string[, wait] SendKeys 语句的语法具有以下几个命名参数: string 必需的。字符串表达式,指定要发送的按键消息。 Wait 可选的。指定等待方式的 [email protected] 值。如果为 False(缺省值),则控件在按键发送出去之后立刻返回到过程。如果为 True,则按键消息必须在控件返回到过程之前加以处理。 说明 ### VB SendKeys语句详解 #### 一、概述 `SendKeys` 语句是 Visual Basic (VB) 中用于模拟键盘输入的一种方法。通过 `SendKeys` 语句,可以向当前活动窗口发送一系列按键消息,就如同用户在键盘上进行实际输入一样。这在自动化测试脚本、编写简单的自动化工具或宏时非常有用。 #### 二、语法结构 `SendKeys` 的基本语法如下: ```vb SendKeys string[, wait] ``` 其中包含两个参数: 1. **string**:必需参数,用于指定要发送的按键消息。该参数可以是一个字符串表达式,用来表示特定的按键或按键组合。 2. **wait**:可选参数,默认值为 `False`。它指定了是否等待按键消息被完全处理后再继续执行后续代码。如果设置为 `True`,则会等到按键消息处理完毕后才返回控制权给程序;若设置为 `False`(默认值),则发送完按键消息后立即返回控制权给程序。 #### 三、详细说明 ##### 1. 字符串表达式(`string`) - 普通字符:可以直接用它们对应的英文字符表示,如 `'a'` 表示 `A` 键。 - 特殊键位:需要使用特殊字符或括号来表示。 - **单个按键**:使用大括号 `{}` 来表示特定的按键,例如 `{ENTER}` 表示回车键。 - **按键组合**:使用加号 `+` 和大括号 `{}` 来表示同时按下多个键,例如 `{+}{DOWN}` 表示同时按 `Shift` 和 `Down Arrow` 键。 - **特殊字符**:使用百分号 `%` 或波浪号 `~` 来表示特殊键,例如 `%{F4}` 表示 `Alt + F4`。 ##### 2. 常见按键及其表示法 - BACKSPACE: `{BACKSPACE}`, `{BS}`, `{BKSP}` - BREAK: `{BREAK}` - CAPS LOCK: `{CAPSLOCK}` - DELETE: `{DELETE}`, `{DEL}` - DOWN ARROW: `{DOWN}` - END: `{END}` - ENTER: `{ENTER}`, `~` - ESC: `{ESC}` - HELP: `{HELP}` - HOME: `{HOME}` - INSERT: `{INSERT}`, `{INS}` - LEFT ARROW: `{LEFT}` - NUM LOCK: `{NUMLOCK}` - PAGE DOWN: `{PGDN}` - PAGE UP: `{PGUP}` - PRINT SCREEN: `{PRTSC}` - RIGHT ARROW: `{RIGHT}` - SCROLL LOCK: `{SCROLLLOCK}` - TAB: `{TAB}` - UP ARROW: `{UP}` - 功能键 F1 至 F16: `{F1}` 至 `{F16}` ##### 3. 键盘修饰键 - SHIFT: `+` - CTRL: `^` - ALT: `%` 这些修饰键通常与其它按键组合使用,以实现特定的功能。例如: - 如果想要同时按下 `Shift` 和 `Enter` 键,可以使用 `"+{ENTER}"`。 - 若要同时按下 `Ctrl` 和 `C` 键,可以使用 `"^{C}"`。 - 若要按下 `Alt` 键并输入数字,可以使用 `{123}%`。 ##### 4. 示例代码 下面是一个简单的示例,展示了如何使用 `SendKeys` 来自动计算简单数学表达式: ```vb Dim ReturnValue As Integer Dim I As Integer ' 打开计算器 ReturnValue = Shell("Calc.EXE", 1) ' 激活计算器窗口 AppActivate ReturnValue ' 循环输入数字 For I = 1 To 100 SendKeys I & "{+}", True ' 输入数字并加上加号 Next I ' 计算结果 SendKeys "=", True ' 显示结果 MsgBox "结果: " & TextBox1.Text ' 关闭计算器 SendKeys "%{F4}", True ``` 在此示例中,`SendKeys` 语句被用于打开计算器应用程序、输入数字、执行计算以及关闭应用程序。值得注意的是,当 `wait` 参数被设置为 `True` 时,程序会等待每次按键消息被完全处理后再执行下一步操作。 ##### 5. 其他注意事项 - 在某些情况下,可能无法使用 `SendKeys` 发送特定的按键,比如 `Print Screen` 键(`{PRTSC}`)。 - 使用 `SendKeys` 需要注意其对 Windows 系统的兼容性问题,特别是在不同版本的操作系统之间可能会有所差异。 - 在进行复杂的自动化任务时,建议先在目标应用程序中测试 `SendKeys` 的效果,确保其能够按照预期工作。 `SendKeys` 语句为 VB 开发者提供了一种方便的方法来模拟键盘输入。通过了解其语法和应用场景,开发者可以更高效地完成自动化脚本编写任务。

























将一个或多个按键消息发送到活动窗口,就如同在键盘上进行输入一样。
语法
SendKeys string[, wait]
SendKeys 语句的语法具有以下几个命名参数:
string 必需的。字符串表达式,指定要发送的按键消息。
Wait 可选的。指定等待方式的 [email protected] 值。如果为 False(缺省值),则控件在按键发送出去之后立刻返回到过程。如果为 True,则按键消息必须在控件返回到过程之前加以处理。
说明
每个按键由一个或多个字符表示。为了指定单一键盘字符,必须按字符本身的键。例如,为了表示字母 A,可以用 "A" 作为 string。为了表示多个字符,就必须在字符后面直接加上另一个字符。例如,要表示 A、B 及 C,可用 "ABC" 作为 string。
对 SendKeys 来说,加号 (+)、插入符 (^)、百分比符号 (%)、上划线 (~) 及圆括号 ( ) 都具有特殊意义。为了指定上述任何一个字符,要将它放在大 括号 ({}) 当中。例如,要指定正号,可用 {+} 表示。方括号 ([ ]) 对 SendKeys 来说并不具有特殊意义,但必须将它们放在大括 号中。在其它应用程序中,方括号有特殊意义,在出现动态数据交换 (DDE) 的时候,它可能具有重要意义。为了指定大括号字符,请使用 {{} 及 {}}。
为了在按下按键时指定那些不显示的字符,例如 ENTER 或 TAB 以及那些表示动作而非字符的按键
为 了说明在按下其它按键时应同时按下 SHIFT、CTRL、及 ALT 的任意组合键,请把那些按键的码放在括号当中。例如,为了说明按下 E 与 C 的时候同时按下 SHIFT 键,请使用 "+(EC)"。为了说明在按下 E 的时候同时按下 SHIFT 键,但接着按 C 而不按 SHIFT,则 使用 "+EC"。
为了指定重复键,使用 {key number} 的形式。必须在 key 与 number 之间放置一个空格。例如,{LEFT 42} 意指 42 次按下 LEFT ARROW 键;{h 10} 则是指 10 次按下 H 键。
注意 不能用 SendKeys 将按键消息发送到这样一个应用程序,这个应用程序并没有被设计成在 Microsoft Windows 中运行。Sendkeys 也无法将 PRINT SCREEN 按键 {PRTSC} 发送到任何应用程序
SendKeys是将一个或多个按键消息发送到活动窗口,就如同在键盘上进行输入一样,简单说就是模拟按键
看例子
Dim ReturnValue, I
ReturnValue = Shell("Calc.EXE", 1) ' 运行计算器。
AppActivate ReturnValue ' 激活计算器。
For I = 1 To 100 ' 设置计数循环。
SendKeys I & "{+}", True ' 按下按键给计算器
Next I ' 将所有 I 值相加。
SendKeys "=", True ' 取得总合。


- 粉丝: 24
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- SQL实训图书管理.doc
- 飞机钣金成形信息化的关键技术解决路径.docx
- ADPCM的语音编解码设计方案.doc
- 《单片机应用与仿真训练》设计报告:单片机的遥控窗帘.doc
- 历年计算机二级MS-Office真题.docx
- 利用BIOSIS-PREVIEWS.ppt
- 数据库原理课程设计模板.doc
- DICEPXAEP嵌入式优秀教学实验系统.doc
- ACCESS课程设计要求与选题.doc
- 互联网+时代的平面设计理念.docx
- 大数据时代政策预测的挑战及应对.docx
- 区块链技术对我国体育产业发展的影响研究.docx
- 农村家庭迈向信息化实现策略研究分析方案.doc
- ppt模板电子商务总结汇报类PPT模板.pptx
- §1电子商务概述21.ppt
- 大力推进智慧城市建设-将现代化国际港口城市建设推向新阶段.ppt


