Board logo

标题: [技术讨论] VBS解决QQ2011复制粘贴到文本无换行 [打印本页]

作者: batman    时间: 2011-5-25 21:37     标题: VBS解决QQ2011复制粘贴到文本无换行

前言:      
    用了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
复制代码

作者: semiuel    时间: 2011-5-26 11:28

如果把VBS脚本多运行一次,处理后的结果就会每行后面多一个空行
作者: wankoilz    时间: 2011-5-26 13:13

一对 getdata  setdata  解决问题,短小实用,顶一个!
作者: zqz0012005    时间: 2011-5-27 20:10

  1. mshta "javascript:clipboardData.setData('text', clipboardData.getData('text').replace(/\r\n?|\r?\n/g,'\r\n'));close();"
复制代码

作者: Demon    时间: 2011-5-29 11:03

看你用什么编辑器了,Editplus表示毫无压力
作者: 小胖狐狸    时间: 2011-11-11 10:26

我是先用UltraEdit再升级到QQ2011的,所以发现直接复制到QQ有问题,就直接用UltraEdit了,倒是没觉得很麻烦




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2