无意中接触了vbs脚本这个名词,也想起了许久以前看到过的一个自动将粘贴板的内容发送给qq好友的脚本,心里突然也想试一试。于是先上网查了一下vbs的相关信息。其实vbs的语法和VB一样,都是简单易懂,比如if then else end if 这样,又或者do while end do 这样子。另外它的变量不需要声明类型,自动初始化为0,不过这都是一些细节。正是因为它的通俗,大多数人都把它当做第一个编程语言来学习。嗯,我在高二的时候看过苏文用它来生成无数个空白窗口,也曾在电脑课堂上对着书本一个字一个字的敲出一个加密文本的程序。可是,我对代码内容一无所知,也不曾记得了。
然后上网搜了一下代码,很容易找到了关键字sendkey,相关用法http://blog.sina.com.cn/s/blog_8c804f6d0100wi57.html
先试一下,打开记事本,
Dim WshShell '定义一个变量'
Set WshShell=WScript.CreateObject("WScript.Shell") '创建一个对象'
WshShell.Run "1.txt" '打开事先创建在同目录下的1.txt'
WScript.Sleep 1500 '脚本暂停1.5秒'
WshShell.sendkeys "777" '模拟按键输入777'
保存,把文件后缀名改为.vbs双击即可运行,可以看到它确实work了。
我创建这样一个脚本可不是为了打开一个qq好友的对话框然后等着脚本自动执行,然后点击发送,然后关闭对话框。所以我要它自己打开qq好友对话框,自己输入,自己发送,自己关闭对话框。
曾经想过怎样在qq程序中打开特定好友的对话框,显然,并不会有什么结果。于是改变思路。我把该好友创建桌面快捷方式
然后在桌面快捷方式上右键-属性,把它的真正位置复制下来
回到vbs文档中,继续编辑,把Run "1.txt"改为目标位置,再加上sendkeys “{ENTER}” 即模拟按下ENTER键发送信息,保存,运行之。
接下来就是关闭窗口了,我们知道Alt+F4可以关闭当前窗口,故,仍然是sendkeys "%{F4}",到此程序的规模大致完成了,完整程序代码如下:
Dim WshShell
Set WshShell=WScript.CreateObject("WScript.Shell")
WshShell.Run "XXX"
WScript.Sleep 1500
WshShell.sendKeys "XXX{ENTER}"
WshShell.sendKeys "%{F4}"
后记:完成这个脚本之后,我把它添加到计划任务之中,这样它就会在指定的时间中发信息给你制定的好友。后来的测试中发现,即使删掉好友桌面快捷方式,脚本也仍然正常执行。然而,如果在与某个好友聊天之后没有关掉输入法就关闭聊天窗口,脚本不能正常执行。同样地,如果在脚本执行期间还伴随着其他按键,比如前台在玩游戏,后台在执行脚本,这种情况脚本也无法正常执行。如果在脚本运行期间,在脚本打开qq聊天窗口的一瞬间,把其他窗口激活,使之成为当前窗口,脚本也无法正常运行。另外,脚本暂时无法直接发送汉字消息,只能发送字符或者空白,不过,你也可以通过sendkeys模拟打字过程来实现,由于这个只是我的猜测,没有实践过,不过我相信,这是可行的。还有一种较为简单的办法,那就是先把要发送的内容复制到粘贴板,然后模拟Ctrl+v粘贴发送。
嗯,就这样。