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

[技术讨论] VBS解决QQ2011复制粘贴到文本无换行

[复制链接]
发表于 2011-5-25 21:37:00 | 显示全部楼层 |阅读模式
前言:      
    用了qq2011的会员可能都会有这样的经历:在论坛qq群上求助,然后好不容易“高手”给出一段代码,欣喜之中马上复制粘贴到文本中准备测试,谁料才完成ctrl+v的动作就傻眼了。靠!怎么全部没有换行,只是在换行处多了个黑黑的字符,无奈之中只得手动删除和换行了。当然手头有高级一点编辑器的可能不会有这个烦恼,因为粘贴在这些编辑器中是正常的。造成这一情况的原因在于notepad(我反正是用的它)不能正确识别qq2011文本信息中的回车换行符,于是,本人写下下面这段vbs代码用以转换qq2011文本信息中的回车换行符为notepad可以识别的回车换行符。使用方法是复制信息后双击此vbs便可正确粘贴了。

    因为是调用的ie对象,虽然在本人多台电脑上测试通过并加入了容错代码,不过还是肯请大家帮测试下,主要是看有没有报错信息以及出现ie空白页的弹出(实际上弹出空白页并不影响结果,只是很不方便罢了)。代码如下:

  1. Dim vbstr
  2. Set oie = CreateObject("internetexplorer.application")
  3. oie.Navigate("about:blank")
  4. Do Until oie.ReadyState = 4 : WScript.Sleep 200 : Loop
  5. CreateObject("wscript.shell").run "cmd /c taskkill /f /fi " & Chr(34) & "windowtitle eq 空白页*" & Chr(34) & " 2>nul", 0, 1
  6. vbstr = oie.Document.parentwindow.clipboarddata.getdata("text")
  7. If vbstr <> "" Then oie.Document.parentwindow.clipboarddata.setdata "text", Replace(vbstr, vbCr, vbCrLf)
  8. oie.Quit
  9. Set oie = Nothing
复制代码
发表于 2011-5-26 11:28:07 | 显示全部楼层
如果把VBS脚本多运行一次,处理后的结果就会每行后面多一个空行
发表于 2011-5-26 13:13:44 | 显示全部楼层
一对 getdata  setdata  解决问题,短小实用,顶一个!
发表于 2011-5-27 20:10:57 | 显示全部楼层

  1. mshta "javascript:clipboardData.setData('text', clipboardData.getData('text').replace(/\r\n?|\r?\n/g,'\r\n'));close();"
复制代码
发表于 2011-5-29 11:03:25 | 显示全部楼层
看你用什么编辑器了,Editplus表示毫无压力
发表于 2011-11-11 10:26:33 | 显示全部楼层
我是先用UltraEdit再升级到QQ2011的,所以发现直接复制到QQ有问题,就直接用UltraEdit了,倒是没觉得很麻烦
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 07:26 , Processed in 0.018589 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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