[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
  1. REM 获取剪切板的内容
  2. Set objHTML = CreateObject("htmlfile")
  3. ClipboardText = objHTML.ParentWindow.ClipboardData.GetData("text")
  4. MsgBox ClipboardText
复制代码
  1. REM 对比判断剪切板的内容
  2. REM 若为DA110 则执行另一个02.vbs
  3. REM 若为DA111 则执行另一个03.vbs
  4. REM 若为DA112 则执行另一个04.vbs
  5. REM 若为DA113 则执行另一个05.vbs
  6. REM 若为DA114 则执行另一个06.vbs
  7. REM 若为DA115 则执行另一个07.vbs
  8. REM 若为FI420 则执行另一个b.vbs
  9. REM 大概共有十几种可能吧
  10. REM 若都不是,则启动 a.vbs
  11. Select Case UCase(ClipboardText)
  12.    Case "DA110"    CreateObject("WScript.Shell").Run "02.vbs"
  13.    Case "DA111"    CreateObject("WScript.Shell").Run "03.vbs"
  14.    Case "DA112"    CreateObject("WScript.Shell").Run "04.vbs"
  15.    Case "DA113"    CreateObject("WScript.Shell").Run "05.vbs"
  16.    Case "DA114"    CreateObject("WScript.Shell").Run "06.vbs"
  17.    Case "DA115"    CreateObject("WScript.Shell").Run "07.vbs"
  18.    Case "DA420"    CreateObject("WScript.Shell").Run "b.vbs"
  19.    Case Else     CreateObject("WScript.Shell").Run "a.vbs"
  20. End Select
复制代码
1

评分人数

    • xgda: 先谢谢了,现在去上班,下班才能回来试技术 + 1
『千江有水千江月』千江有水,月映千江;万里无云,万里青天。    http://yu2n.qiniudn.com/

TOP

。。。才看到,不好意思。
用For、 Mid语句就可以了,把句子拆分成一个个字符。
  1. REM 假设要发送 ClipboardText = "AB中文cd会跳过1234.[>"
  2. ClipboardText = "AB中文cd会跳过1234.[>"
  3. For i = 1 To Len(ClipboardText)
  4. strKey = Mid(ClipboardText, i, 1)
  5. If ASC(strKey) > 0 And ASC(strKey) < 127 Then
  6. a.SendKeys  strKey
  7. End If
  8. Next
复制代码
『千江有水千江月』千江有水,月映千江;万里无云,万里青天。    http://yu2n.qiniudn.com/

TOP

回复 8# xgda

对象“a”是你的代码中定义的“ CreateObject("Wscript.Shell")”,可能你把对象名称“a”改成了“objWshShell” 。试试:
  1. Dim objWshShell, objFSO, objTextStream
  2. Set objWshShell = CreateObject("Wscript.Shell")
  3. Set objFSO = CreateObject("Scripting.FileSystemObject")
  4. Set objTextStream = objFSO.OpenTextFile("C:\log.txt", 1, False)
  5. Dim strTextLine, i, strKey
  6. strTextLine = objTextStream.ReadLine()
  7. If Not strTextLine = "" Then
  8. For i = 1 To Len(strTextLine)
  9. strKey = Mid(strTextLine, i, 1)
  10. If ASC(strKey) > 0 And ASC(strKey) < 127 Then
  11. objWshShell.SendKeys strKey
  12. End If
  13. Next
  14. End If
  15. Set objWshShell = Nothing
  16. Set objFSO = Nothing
复制代码
『千江有水千江月』千江有水,月映千江;万里无云,万里青天。    http://yu2n.qiniudn.com/

TOP

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

回复 10# xgda

2015.01.03 更新:特殊字符“ +^%~(){} ”的处理 ..
  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.     ' 判断字符是否支持
  19.     If ASCW(strKey) > 0 And ASCW(strKey) < 127 Then
  20.       '' 特殊符号 + ^ % ~ () {} 的处理
  21.       If InStr("+^%~(){}", strKey) > 0 Then strKey = "{" + strKey + "}"
  22.       If strKey = vbLf Then strKey = ""
  23.       '' 发送按键码
  24.       WScript.Sleep 10
  25.       wso.SendKeys strKey
  26.     End If
  27.   Next
  28. End If
  29. Set wso = Nothing
  30. Set objHTML = Nothing
复制代码
1

评分人数

    • xgda: 这下好了,非常谢谢技术 + 1
『千江有水千江月』千江有水,月映千江;万里无云,万里青天。    http://yu2n.qiniudn.com/

TOP

返回列表