当前位置: 首页 > 图文教程 > 脚本技术 > VBScript > 用VBS实现一个小键盘动作CTRL+V粘贴操作与思路分析

VBScript
用VBScript批量安装网络打印机和设置默认打印机
Vbs 脚本编程简明教程之一
vbs SendKey 用法 Sendkey 键盘对应的码表
用vbs 取得收藏夹里的所有链接名称和URL的脚本
link-view.vbs 页面链接查看
VBS读网页的代码
用VBScript写合并文本文件的脚本
vbscript ms owc 封裝代码
VbScript 封裝MS OWC(二)
vbs 注册表操作代码(添加删除)
用于修复XP中最小化程序 在任务栏显示图标的vbs脚本
完整的注册表操作实例 VBS脚本
vbs 注册表实现木马自启动
reg2vbs.vbs 将Reg文件转换为VBS文件保存 IT学习网修正版本
e是自然对数的底 e.vbs
vbs imail 密码解密
VBS Runas 自动输入密码, 明文
vbscript 三个数比较大小的实现代码
脚本 MsAgent组件 微软精灵 揪出系统自带的宠物
VBS InternetExplorer.Application的属性和方法介绍

VBScript 中的 用VBS实现一个小键盘动作CTRL+V粘贴操作与思路分析


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-10   浏览: 366 ::
收藏到网摘: n/a

我想实现当有跳出窗口"请输入"时的1.8秒后就发送一次 CTRL + V,把本来已经复制到剪切版中的文字自动粘贴过去呢 提示:
1,是每次有跳出窗口时的1.8秒后都要有此动作,并且是只发送了一次该动作,发送完后等待下次的窗口跳出再循环.
2,每次循环中都只是发送了一次CTRL + V后就停,而不是一直发送
看到问题,立即着手编写测试代码,这时候问题出现:
弹出 inputbox 窗口后,VBS处于暂停状态,等待用户输入,点击确定or取消,
所以在它后面的 Wshshell.Sendkeys "^v" 将无法执行,
如果前面弹出 inputbox 窗口后点击确定 or 取消的话,那么再执行 ctrl+v 就不能把剪切板中的内容粘贴到inputbox 窗口当中,如果把Wshshell.Sendkeys "^v" 放到 inputbox 之前的话,也不行,因为 inputbox 还没弹出来,ctrl+v也无法实现粘贴内容到 inputbox,
转换一下思路,我们把inputbox 和 sendkey写成两个文件,这样它们互相就不会产生冲突,最终解决代码如下:
复制代码 代码如下:

Set WshShell=WScript.CreateObject("WScript.Shell")
WScript.Sleep 2000
Set fso=wscript.createobject("scripting.filesystemobject")
set f=fso.opentextfile("sendkey.vbs",2,true)
f.Write("Set WshShell=WScript.CreateObject(" & Chr(34) & "WScript.Shell" & chr(34) & ")")
f.WriteBlankLines(1)
f.Write("WScript.Sleep 1800")
f.WriteBlankLines(1)
f.Write("Wshshell.appactivate " & chr(34) & "提示" & chr(34))
f.WriteBlankLines(1)
f.Write("Wshshell.Sendkeys " & chr(34) & "^v" & chr(34))
f.WriteBlankLines(1)
f.Close
Wshshell.Run ("sendkey.vbs")
InputBox "请输入","提示",""
fso.DeleteFile ("sendkey.vbs")

代码先写 sendkey.vbs 并执行,执行过程中会等待1.8秒发送 ctrl+v ,接着弹出 inputbox,这时候inputbox弹出来了,sendkey.vbs在等待1.8秒后也执行ctrl+v把内容粘贴到了inputbox 输入框中.问题解决
总结:在遇到一些问题的时候,不能钻牛角尖,换个思路,其实解决起来并不难!