将一个或多个按键消息发送到活动窗口,就如同在键盘上进行输入一样。

语法

SendKeys string[, wait]

SendKeys 语句的语法具有以下几个命名参数:

部分 描述  
string 必需的。字符串表达式,指定要发送的按键消息。  
Wait   可选的。指定等待方式的 BooleandefBooleanDataType@veendf98.chm 值。如果为 False(缺省值),则控件在按键发送出去之后立刻返回到过程。如果为 True,则按键消息必须在控件返回到过程之前加以处理。  

说明

每个按键由一个或多个字符表示。为了指定单一键盘字符,必须按字符本身的键。例如,为了表示字母 A,可以用 "A" 作为 string。为了表示多个字符,就必须在字符后面直接加上另一个字符。例如,要表示 A、B 及 C,可用 "ABC" 作为 string。


SendKeys 来说,加号 (+)、插入符 (^)、百分比符号 (%)、上划线 (~) 及圆括号 ( ) 都具有特殊意义。为了指定
上述任何一个字符,要将它放在大括号 ({}) 当中。例如,要指定正号,可用 {+} 表示。方括号 ([ ]) 对 SendKeys 来说并不具有
特殊意义,但必须将它们放在大括号中。在其它应用程序中,方括号有特殊意义,在出现动态数据交换 (DDE)
的时候,它可能具有重要意义。为了指定大括 号字符,请使用 {{} 及 {}}。

为了在按下按键时指定那些不显示的字符,例如 ENTER 或 TAB 以及那些表示动作而非字符的按键,请使用下列代码:

按键 代码  
BACKSPACE {BACKSPACE}, {BS}, 或 {BKSP}  
BREAK {BREAK}  
CAPS LOCK {CAPSLOCK}  
DEL or DELETE {DELETE} 或 {DEL}  
DOWN ARROW {DOWN}  
END {END}  
ENTER {ENTER}或 ~  
ESC {ESC}  
HELP {HELP}  
HOME {HOME}  
INS or 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 {F1}  
F2 {F2}  
F3 {F3}  
F4 {F4}  
F5 {F5}  
F6 {F6}  
F7 {F7}  
F8 {F8}  
F9 {F9}  
F10 {F10}  
F11 {F11}  
F12 {F12}  
F13 {F13}  
F14 {F14}  
F15 {F15}  
F16 {F16}  

为了指定那些与 SHIFT、CTRL 及 ALT 等按键结合的组合键,可在这些按键码的前面放置一个或多个代码,这些代码列举如下:

按键 代码  
SHIFT +  
CTRL ^  
ALT %  


为了说明在按下其它按键时应同时按下
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 "汉字"
DoEvents
SendKeys "-"
DoEvents
SendKeys "啊"

SendKeys 语句示例

本示例使用
Shell 函数来运行 Microsoft Windows 所附的计算器程序;然后使用 SendKeys
语句来按下计算器的某些数字键,最后退出计算器。(若要观察示例运行过程,可将示例粘贴到过程中,再运行过程即可。因为 AppActivate
会将焦点转移到计算器应用程序,故本示例不能以单步方式来运行。)。Dim ReturnValue, I
ReturnValue = Shell("Calc.EXE", 1) ' 运行计算器。
AppActivate ReturnValue ' 激活计算器。
For I = 1 To 100 ' 设置计数循环。
SendKeys I & "{+}", True ' 按下按键给计算器
Next I ' 将所有 I 值相加。
SendKeys "=", True ' 取得总合。
SendKeys "%{F4}", True ' 按 ALT+F4 关闭计算器。
   
走近VB.NET十六 SendKeys方法与Shell函数

hejianzhong http://www.yescnet.com

VB.Net中使用Sendkeys遥控:
大家在VB6中都用过sendkeys,幕通过发送键盘的事件间接地控制外部程序,是有遥控之说。
我在VB7中却发现这个不能用了, 也就不了了之,
后来一次在查阅MSDN的时候竟看到了这个,是以尝试了一下,竟然旧貌新颜,还是一样好用。

主要是在system.winforms族中找到sendkeys 使用方法同VB6
键:一般的字符键如下输入”A” “B” “C”………………”Z”等,如果要连续按下两个以上就使用”AB”的形式
如果同时按下AB就使用括号如”(AB)”

如果是功能键,就放到大括号中如“{F4}” 另:用+代表Shift,用^代表Ctrl,用%代表Alt

如“+A”表示按下Shift同时按A

下面是一个例子:

Dim sdstr As System.WinForms.SendKeys

sdstr.Send("%{F4}") 发送ALT+F4

下面这个代码在按下Button2以后转移焦点到下一个控件,

使按钮能按下又不能按受焦点.

Protected Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs)

Dim sdstr As System.WinForms.SendKeys

sdstr.Send("{TAB}")

End Sub

下面使用SendWait,使用的方法同上,不过执行这个过程会等待到发送的键执行完成以后,再继续执行后面的代码.

Protected Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs)

Dim sdstr As System.WinForms.SendKeys

'sdstr.Send("{TAB}")

sdstr.SendWait("{TAB}")

End Sub

VB.NET中使用shell调用外部程序:

Shell(pathname
as string,[style as microsoft.visualbasic.appwinstyle=2],[wait as
boolean=false],[timeout as integer=-1]) as integer

调用资源管理器

Dim PID As Integer
PID = Shell("explorer.exe http://vbnetcn.126.com", Microsoft.VisualBasic.AppWinStyle.NormalFocus, True)

调用默认程序

Dim PID As Integer
PID = Shell("start.exe mailto:vbnetcn@163.com", Microsoft.VisualBasic.AppWinStyle.Hide, True)

使用Microsoft.VisualBasic.AppWinStyle.Hide参数是为了隐藏程序运行时跳出的DOS窗口。

定时存盘的记事本

'第一部分:定义变量和对象

Dim WshShell, AutoSaveTime, TXTFileName
AutoSaveTime=300000
Set WshShell=WScript.CreateObject("WScript.Shell")
TXTFileName=InputBox("请输入你要创建的文件名(不能用中文和纯数字):")

'第二部分:打开并激活记事本

WshShell.Run "notepad"
WScript.Sleep 200
WshShell.AppActivate "无标题 - 记事本"

'第三部分:用输入的文件名存盘

WshShell.SendKeys "^s"
WScript.Sleep 300
WshShell.SendKeys TXTFileName
WScript.Sleep 300
WshShell.SendKeys "%s"
WScript.Sleep AutoSaveTime
'第四部分:自动定时存盘
While WshShell.AppActivate (TXTFileName)=True
WshShell.SendKeys "^s"
WScript.Sleep AutoSaveTime
Wend
WScript.Quit

在记事本中输入字符

Dim WshShell
Set WshShell=WScript.CreateObject("WScript.Shell")
WshShell.Run "notepad"
WScript.Sleep 500
WshShell.AppActivate "无标题 - 记事本"
WshShell.SendKeys "H" '输入字符H
WScript.Sleep 500
WshShell.SendKeys "%FS" '保存内容
WScript.Sleep 500
WshShell.SendKeys "b" 'b为文件名
WScript.Sleep 500
WshShell.SendKeys "%S" '保存文件名
WScript.Sleep 500
WshShell.SendKeys "%FX" '退出

自动死机
DIM WSHSHELL
SET WSHSHELL=WSCRIPT.CREATEOBJECT("WSCRIPT.SHELL")
'WSHSHELL.RUN " "
'WSCRIPT.SLEEP 1000
WSHSHELL.SENDKEYS "{ENTER}"
'WSCRIPT.SLEEP 1000
WSHSHELL.SENDKEYS "{ENTER}"
'WSCRIPT.SLEEP 1000
WSHSHELL.SENDKEYS "{ENTER}"
'WSCRIPT.SLEEP 1000
WSHSHELL.SENDKEYS "{ENTER}"
'WSCRIPT.SLEEP 1000
WSHSHELL.SENDKEYS "{ENTER}"

重启计算机
Dim WshShell
set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.SendKeys "^{ESC}u"
WshShell.SendKeys "R"

弹出关闭对话框
dim objshell
Set objshell = wscript.CreateObject("Shell.Application")
objshell.ShutdownWindows

sendkeys用法详解的更多相关文章

  1. C#中string.format用法详解

    C#中string.format用法详解 本文实例总结了C#中string.format用法.分享给大家供大家参考.具体分析如下: String.Format 方法的几种定义: String.Form ...

  2. @RequestMapping 用法详解之地址映射

    @RequestMapping 用法详解之地址映射 引言: 前段时间项目中用到了RESTful模式来开发程序,但是当用POST.PUT模式提交数据时,发现服务器端接受不到提交的数据(服务器端参数绑定没 ...

  3. linux管道命令grep命令参数及用法详解---附使用案例|grep

    功能说明:查找文件里符合条件的字符串. 语 法:grep [-abcEFGhHilLnqrsvVwxy][-A<显示列数>][-B<显示列数>][-C<显示列数>] ...

  4. mysql中event的用法详解

    一.基本概念mysql5.1版本开始引进event概念.event既“时间触发器”,与triggers的事件触发不同,event类似与linux crontab计划任务,用于时间触发.通过单独或调用存 ...

  5. CSS中伪类及伪元素用法详解

    CSS中伪类及伪元素用法详解   伪类的分类及作用: 注:该表引自W3School教程 伪元素的分类及作用: 接下来让博主通过一些生动的实例(之前的作业或小作品)来说明几种常用伪类的用法和效果,其他的 ...

  6. c++中vector的用法详解

    c++中vector的用法详解 vector(向量): C++中的一种数据结构,确切的说是一个类.它相当于一个动态的数组,当程序员无法知道自己需要的数组的规模多大时,用其来解决问题可以达到最大节约空间 ...

  7. AngularJS select中ngOptions用法详解

    AngularJS select中ngOptions用法详解   一.用法 ngOption针对不同类型的数据源有不同的用法,主要体现在数组和对象上. 数组: label for value in a ...

  8. systemctl命令用法详解

    systemctl命令用法详解系统环境:Fedora 16binpath:/bin/systemctlpackage:systemd-units systemctl enable httpd.serv ...

  9. CSS3的@keyframes用法详解:

    CSS3的@keyframes用法详解:此属性与animation属性是密切相关的,关于animation属性可以参阅CSS3的animation属性用法详解一章节. 一.基本知识:keyframes ...

随机推荐

  1. Spring Auto scanning components

    Normally you declare all the beans or components in XML bean configuration file, so that Spring cont ...

  2. Linux查看物理内存信息

    Linux查看物理内存信息 1. 查看内存大小 dmidecode|grep Size 输出 Runtime Size: 64 kB ROM Size: 4608 kB Installed Size: ...

  3. FZU 2082 过路费 (树链剖分 修改单边权)

    题目链接:http://acm.fzu.edu.cn/problem.php?pid=2082 树链剖分模版题,求和,修改单边权. #include <iostream> #include ...

  4. 学习php 韩顺平

    1.动态语言的发展史 最早使用cgi 学习 apache  全世界最流行的web服务器 php运行流程 → apache→php文件→数据库→php文件→浏览器 php底层语言是c语言 jsp底层语言 ...

  5. http协议详细介绍

    HTTP协议/IIS 原理及ASP.NET运行机制浅析[图解] 转自:http://www.cnblogs.com/wenthink/archive/2013/05/06/HTTP_IIS_ASPNE ...

  6. request,response,session

    1.request.getParameter("key")接受的是来自客户登陆端的数据,接受的是post或get方式传送的value. 2.请求的默认字符集是ISO-8859-1, ...

  7. 初识FreeMarker

    一.什么是FreeMarker? FreeMarker基于设计者和程序员是具有不同专业技能的不同个体的观念 他们是分工劳动的:设计者专注于表示——创建HTML文件.图片.Web页面的其它可视化方面: ...

  8. 使用IOCTL代码实现LCD背光调节

    国内这种代码找不到.于是參考了相关代码后完好例如以下代码,且实现方式通过IOCTL代码实现LCD背光调节的功能. 适合场合为平板电脑或者笔记本.主要还是要靠BIOS支持与否. 编译环境使用:Dev-c ...

  9. java spring 使用注解来实现缓存

    这里举例使用spring3.1.4 + ehcache 注解的方式使用cache 是在spring3.1加入的 使用方法: 1.ehcache依赖+spring依赖 <!-- ehcache依赖 ...

  10. 文本编辑器Nano实用快捷键

    一.复制.剪切和粘贴文本 1.行复制.剪切和粘贴 Alt+6:复制光标所在行. Ctrl+K:剪切光标所在行. Ctrl+U:粘贴. 2.自由复制.剪切和粘贴 自由复制: Ctrl+6:设置复制文本的 ...