模拟键盘操作,将一个或多个键盘命令发送到指定的Windows窗口,以控制应用程序的运行
使用的格式为:object.SendKeys(string)
object:代表WshShell对象
string:表示要发送的按键命令字符串,需要用英文双引号引起来
基本键
每个键由一个或多个字符表示。
要指定单个键盘字符,必须按字符本身的键。例如,要表示字母A,可以使用“ A”
为了表示多个字符,必须在该字符之后直接添加另一个字符。例如,要表示A,B和C,请使用“ ABC”作为字符串。
特殊功能键
对于需要与Shift,Ctrl和Alt三个控制键结合使用的键,SendKeys使用特殊字符来表示:
Shift --------- WshShell.SendKeys“ +”
Ctrl ---------- WshShell.SendKeys“ ^”
Alt --------- WshShell.SendKeys“%”
由于使用字符“ +”和“ ^”表示特殊控制按钮,因此如何表示这些按钮?只需将这些字符括在大括号中即可。例如:要发送加号“ +”,请使用“ WshShell.SendKeys” {+}“”
此外,对于某些不生成字符的控制功能键,还必须将键的名称括在大括号中。
例如,要发送Enter键,您需要使用“ WshShell.SendKeys” {ENTER}“”进行指示;
使用“ Wshell.SendKeys” {DOWN}”“指示”发送向下方向键
Space --------- WshShell.SendKeys“”
Enter --------- WshShell.SendKeys“ {ENTER}”
←--------- WshShell.SendKeys“ {RIGHT}”
↑--------- WshShell.SendKeys“ {UP}”
F1 --------- WshShell.SendKeys“ {F1}”
按钮
代码
后退
{BACKSPACE},
BREAK
{BREAK}
CAPS
锁定
DEL
或
下
箭头
END
{END}
ENTER
{ENTER}或
ESC
{ESC}
帮助
{HELP}
首页
{HOME}
INS
或
左
箭头
NUM
锁定
PAGE
下
PAGE
上
打印
屏幕
右
箭头
SCROLL
锁定
TAB
{TAB}
上
箭头
F1
{F1}
F2
{F2}
F3
{F3}
F4
{F4}
F5
{F5}
F6
{F6}
F7
{F7}
F8
{F8}
F9
{F9}
F10

{F10}
如果您需要发送多个重复的单字母键,则无需重复字母。 SendKeys允许您使用简化格式进行描述,格式为“ {key number}”。例如,如果要发送10个字母“ x”,请输入“ WshShell.SendKeys“ {x 10}”“。
接下来让我们看一个示例:
按F5刷新桌面
Dim WshShell,Path,i
Set WshShell = Wscrpt.CreateObject("Wscrpt.Shell")
WshShell.SendKeys "{F5}"自动重启计算机
Dim WshShell
Set WshShell = CreateObject("Wscrpt.Shell")
WshShell.SendKeys "^{ESC}u"
WshShell.SendKeys "R"启动任务管理器
Dim WshShell
Set WshShell = CreateObject("Wscrpt.Shell")
WshShell.SendKeys "^+{ESC}" 自动关机
Dim WshShell
Set WshShell=Wscrpt.CreateObject("Wscrpt.Shell")
Wscrpt.Sleep 2000
WshShell.Run "shutdown -r -t 120"
wscrpt.sleep 6000
WshShell.Run "shutdown -a" 输入生日快乐!在记事本中并将其另存为birth.txt
Dim WshShell
Set WshShell=Wscrpt.CreateObject("Wscrpt.Shell")
WshShell.Run "notepad"
Wscrpt.Sleep 1500
WshShell.AppActivate "Ξ? - ?±"
WshShell.SendKeys "Happy Birthdy!!!"
Wscrpt.Sleep 500
WshShell.SendKeys "%FS"
Wscrpt.Sleep 500
WshShell.SendKeys "birth.txt"
Wscrpt.Sleep 500
WshShell.SendKeys "%S"
Wscrpt.Sleep 500
WshShell.SendKeys "%FX" 简单地说,SendKey命令用于模拟键盘操作,将一个或多个键盘命令发送到指定的Windows窗口以控制应用程序的操作。格式为:
WshShell.SendKeys字符串“ string”表示要发送的键盘命令字符串,需要用英文双引号引起来。
1、基本键
通常来说,要发送的键盘命令可以直接由键盘字符本身表示。例如,要发送字母“ x”,请使用WshShell.SendKeys“ x”。您也可以直接发送多个键盘命令,只需按顺序排列键盘字符即可。例如,要发送键“ cfan”,可以使用WshShell.SendKeys“ cfan”
2、特殊功能键
使用特殊字符表示需要与Shift,Ctrl和Alt三个控制键结合使用的SendKey:
特殊控制键特殊字符
Shift +
Ctrl ^
Alt%
3、组合键
如果要发送的组合键是同时按Ctrl + E,则需要使用WshShell.SendKeys“ ^ e”表示如果要发送的组合键是按住Ctrl键,然后同时按E和C键,这时,应使用括号将字母括起来,并且书写格式为WshShell.SendKeys“ ^(ec)”。在这里,您应该注意它与WshShell.SendKeys“ ^ ec”之间的区别,这意味着组合键是同时按住Ctrl和E的键,然后释放Ctrl键并按“ C”字母单独的密钥。
由于使用字符“ +”和“ ^”表示特殊控制键,因此如何表示这些键?只需将这些字符括在大括号中即可。例如,要发送加号“ +”,请使用WshShell.SendKeys“ {+}”。此外,对于某些不生成字符的控制功能键,您还需要使用大括号将键号名称括起来。例如,要发送Enter键,您需要使用WshShell.SendKeys“ {ENTER}”进行指示,而要发送向下方向键,请使用WshShell.SendKeys“ {DOWN}”意味着。
4、多次重复的击键
如果您需要发送多个重复的单字母键,则无需重复输入字母。 SendKdys允许您使用简化格式进行描述,格式为“ {key number}”。例如,如果要发送10个字母“ x”,只需输入WshShell.SendKeys“ {x 10}”。
让VBS脚本在记事本中自动输入一行文本“ Hello,Welcome to”。
Dim WshShell
Set WshShell=WScript.CreateObject("WScript.Shell")
WshShell.Run "notepad"
WScript.Sleep 200
WshShell.AppActivate " 无标题 - 记事本 "
WshShell.SendKeys "hello, welcome to jb51.net"可以定期自动保存的记事本
我们最常用的记事本没有Word和WPS等自动定时保存功能。实际上,使用VBS脚本和SendKeys命令可以弥补这一遗憾。打开记事本,然后输入以下内容:
将其另存为Notepad.vbs。如果您以后想使用记事本,可以双击此脚本文件来打开它。
该程序的详细说明:
此脚本的基本思想是定期将保存键组合Ctrl + S发送到记事本。
第一部分:定义脚本中需要使用的变量和对象。 “ AutoSaveTime”变量用于设置自动保存间隔,单位为毫秒,此处设置为5分钟。 “ TXTFileName”变量获取您要通过输入框创建的文本文件的名称。
第2部分:运行记事本。对于Windows本身提供的程序,例如计算器,可以直接在“ WshShell.Run”之后输入程序名称,例如对于非系统程序来说是“ calc”,可以输入完整路径,但要注意8.3中的输入。格式,例如“” D:\ Progra〜1 \ Tencent \ QQ。 exe“”
第3部分:在这里,我们使用SendKeys命令执行这样的操作过程(请注意每次操作之间使用delay命令):
在记事本中按Ctrl + S组合键→弹出一个窗口来保存文件→输入文件名→按Alt + S组合键进行保存(默认是保存在“我的文档”目录中)。
第4部分:当条件为“ true”时,通过“ While ...... Wend”循环命令,自动保存代码“ WshShell.SendKeys” ^ s””和定时进行定时保存的键代码得以实现重复执行“ WScript.Sleep AutoSaveTime”。由于无法一直执行定时的保存周期,因此退出记事本后,必须自动退出脚本并结束循环,因此设计了循环判断条件“ WshShell.AppActivate TXTFileName = True”,并且记事本可以当记事本正在运行Window时激活,此条件操作的结果为“ True”,并且始终执行定时保存周期。退出记事本后,脚本无法激活记事本窗口,它将退出循环并在“ Wend”之后执行“ WScript.Quit”以退出脚本。
'第一部分:定义变量和对象
Dim WshShell, AutoSaveTime, TXTFileName
AutoSaveTime=1000*60*5
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
附件:与VBS中的Sendkey键盘对应的代码表
键码
--------------------------------------------
Shift +
Ctrl ^
Alt%
BACKSPACE {BACKSPACE},{BS}或{BKSP}
BREAK {BREAK}
大写锁定{CAPSLOCK}
DEL或DELETE {DELETE}或{DEL}
向下箭头{DOWN}
END {END}
ENTER {ENTER}或〜
ESC {ESC}
帮助{HELP}
HOME {HOME}
INS或INSERT {INSERT}或{INS}
左箭头{LEFT}
NUM LOCK {NUMLOCK}
向下翻页{PGDN}
PAGE UP {PGUP}
打印屏幕{PRTSC}
右箭头{RIGHT}
SCROLL LOCK {SCROLLLOCK}
TAB {TAB}
向上箭头{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}
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/bofangqi/article-355093-1.html
确实如此
我也是
千玺是最棒的