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}
vbs小程序代码大全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! ⾄记事本并保存为
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 = "" '启动安装程序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 ""
s.SendKeys "{ENTER}"
这段代码响应了键盘三个动作:Shift+Tab聚焦于地址栏、键⼊“”、Enter回车。于是这样就打开我的博客了^^
第⼆个例⼦、将下⾯代码保存为qq.vbs,运⾏此vbs,将会⾃动输⼊你的QQ帐号与密码,然后登录。
set s = WScript.CreateObject("WScript.Shell")
app=s.Run ("D:\Progra~1\Tencent\") '你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号参数相等
end if
next
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论