[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[问题求助] [已解决]VBS如何通过SendKeys的方式发送出剪切板的内容?

本帖最后由 xgda 于 2014-7-1 20:25 编辑

有一目标窗口,不能使用 ctrl+v 来粘贴剪切板的内容
也就是说不能使用  a.SendKeys "^v"
但能使用键盘敲出来

剪切板的内容为字母加数字,没有中文和符号
如剪切板的内容为 abcdefg
那就是 a.SendKeys "abcdefg"
但不能使用a.SendKeys "^v"

怎么才能用a.SendKeys的方式发送出剪切板的内容
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

已经好了,非常感谢   yu2n   坛友
  1. ' 延时
  2. WScript.Sleep 3000
  3. Dim wso, objHTML, strClipboardText
  4. Set wso = CreateObject("Wscript.Shell")
  5. Set objHTML = CreateObject("htmlfile")
  6. strClipboardText = objHTML.ParentWindow.ClipboardData.GetData("text")
  7. '测试
  8. 'strClipboardText = "测试 A1 + C2 = 100% ? "
  9. ' 方法一:直接 Ctrl + V
  10. wso.SendKeys "^v"
  11. wso.SendKeys "~"
  12. ' 方法二:拆分成单个字符发送,只支持按键字符(A-z,0-9,英文标点),会受输入法限制
  13. Dim i, strKey
  14. If Not strClipboardText = "" Then
  15.   For i = 1 To Len(strClipboardText)
  16.     ' 拆分成单个字符
  17.     strKey = Mid(strClipboardText, i, 1)
  18.     WScript.Sleep 300
  19.     ' 判断字符是否支持
  20.     If ASCW(strKey) > 0 And ASCW(strKey) < 127 Then
  21.       '' 特殊符号 + ^ % ~ 的处理
  22.       If InStr("+^%~", strKey) > 0 Then strKey = "{" + strKey + "}"
  23.       '' 发送按键码
  24.       wso.SendKeys strKey
  25.     End If
  26.   Next
  27. End If
  28. Set wso = Nothing
  29. Set objHTML = Nothing
复制代码

TOP

本帖最后由 yu2n 于 2015-1-3 20:25 编辑

2015.01.03 更新:特殊字符“ +^%~(){} ”的处理 ..
http://bathome.net/redirect.php? ... 6&fromuid=53540
1

评分人数

『千江有水千江月』千江有水,月映千江;万里无云,万里青天。    http://yu2n.qiniudn.com/

TOP

返回列表