当前位置:编程学习 > VB >>

利用sendkeys打造具自动功能的vbs

用过Visual Basic等编程语言的朋友们一定对其SendKeys函数非常熟悉。利用该函数可以把一个字符串发送到目标窗口(比如记事本)或控件(比如一个Edit控件)中,就好像是在目标窗口或控件中输入这个字符串一样。
sendkeys命令就是模拟键盘操作,将一个或者多个桉键指令发送到指定的windows窗口来控制应用程序运行,其使用的格式为:
object.sendkeys string
其中object指wshshell对象,string为要发送的指令字符串,需放在单引号后。
首先我们用一个简单的vbs文件说明:
codz start
============================================
shutdown.vbs
dim wshell
set wshell=createobject("wscript.shell")
wshell.sendkeys "^{ESC}u{ENTER}"
============================================
codz end
将以上代码保存为vbs文件,大家试运行一下,会出现什么效果呢?呵呵~
关于sendkeys的用法有几个需要注意的地方。
1.发送基本键:直接用按键本身来表示。如要发送d字符:wshell.sendkeys "d"
2.特殊功能键:shift用+表示
              Ctrl用^表示
              Alt用%表示
  如发送Ctrl+E的组合键,用wshell.sendkeys "^E"
  如需发送按住Ctrl的同时按下E和C,则为"^(EC)",而"^EC"表示同时按住Ctrl+E然后松开Ctrl按E
3.由于"+"、"^"、"%"这些字符表示上述几个特殊按键,要表示这些按键需用{},如sendkeys "{+}"
4.也可用大括号括起来按键的名称:
wshell.sendkeys "{ENTER}" 发送回车
wshell.sendkeys "{DOWN}"  发送向下的方向键
5.如发送多个重复的单字母按键可简化为sendkeys "{a 10}"这样的形式,将a发送10次
下面来看一些简单的应用吧
1.让vbs自动在记事本输入一行字
codz start
===================================================
dim wshell
set wshell=CreateObject("wscript.shell")
wshell.run "notepad"
wscript.sleep 200
wshell.appactivate "无标题-记事本"
wshell.sendkeys "welcome to http://www.juntuan.net"
==================================================
codz end
2.定制能自动定时存盘的记事本
codz start
================================================================
dim wshell,autosavetime,txtfilename
autosavetime=300000
set wshell=wscript.createobject("wscript.shell")
txtfilename=inputbox("请输入你要创建的文件名(不能用中文和纯数字)")
wshell.run "notepad"
wscript.sleep 200
wshell.appactivate "无标题-记事本"
wshell.sendkeys "^s"
wscript.sleep 300
wshell.sendkeys txtfilename
wscript.sleep 300
wshell.sendkeys "%s"
wscript.sleep antosacvetime
while wshell.appactivate(txtfilename)=true
wshell.sendkeys "^s"
wscript.sleep autosavetime
wend
wscript.quit
================================================================ codz end 
3.QQ自动登陆
codz start
================================================================
    Dim WshShell, QQPath, QQselect
    QQPath="c:progra~1 encentqqqq.exe"   QQ路径
    Set WshShell=WScript.CreateObject("WScript.Shell")   
    WshShell.Run QQPath
    WScript.Sleep 2000
    WshShell.AppActivate "Q登录"
    WshShell.SendKeys "+{TAB}"
    WshShell.SendKeys "67212915"  QQ号码
    WScript.Sleep 200
    WshShell.SendKeys "{TAB}"
    WshShell.SendKeys "wahaha"   QQ密码
    WScript.Sleep 200
    WshShell.SendKeys "{ENTER}"
================================================================
codz end
只须将以上代码中的QQ所在路径、QQ号码、密码改成你自己的,运行该vbs就可以自动登陆QQ了。
相信现在你已经会熟练运用sendkeys了,至于在入侵中如何使用,聪明的你一定会想到:) 转
补充:软件开发 , Vb ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,