找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 14659|回复: 2

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

[复制链接]
发表于 2014-6-22 21:29:08 | 显示全部楼层 |阅读模式
本帖最后由 xgda 于 2014-7-1 20:25 编辑

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

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

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

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

 楼主| 发表于 2014-7-1 20:24:54 | 显示全部楼层
已经好了,非常感谢   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
复制代码
发表于 2015-1-3 20:23:51 | 显示全部楼层
本帖最后由 yu2n 于 2015-1-3 20:25 编辑

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

评分

参与人数 1技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 14:23 , Processed in 0.021988 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表