Board logo

标题: [已解决]VBS怎样写入信息到剪切板? [打印本页]

作者: 随风    时间: 2011-1-26 01:50     标题: [已解决]VBS怎样写入信息到剪切板?

vbs写入信息到剪切板
求一代码
写入信息到剪切板,比如 var=12345
要求将12345写入到剪切板,不要模拟按键那种。

[ 本帖最后由 随风 于 2011-1-27 11:42 编辑 ]
作者: broly    时间: 2011-1-26 12:43

方法一:
下面是一个sub过程,调用就可以了
  1. Sub SetClipboardText(Text)   '写入信息到剪切板
  2.     Set objIE = CreateObject("InternetExplorer.Application")
  3.     objIE.Navigate("about:blank")
  4.     objIE.Document.ParentWindow.ClipboardData.SetData "text", Text
  5.     objIE.Quit
  6. End Sub
复制代码

方法二:
  1. Sub SetClipboardText(Text)   '写入信息到剪切板
  2.     Set wsShell = CreateObject("WScript.Shell")
  3.     wsShell.Run "mshta vbscript:ClipboardData.SetData("&chr(34)&"text"&chr(34)&"," &Chr(34)& Text &Chr(34)& ")(close)",0,True
  4. End Sub
复制代码


注意:方法一中,如果你的IE是7以上的,建议以下操作:“工具-Internet选项-安全”选中上面的Internet图标(默认),点下面的“自定义级别”,在下拉列表中找到“允许对剪贴板进程编程访问”,在属性栏里选中“启用”,点“确定”既可。

另外,批处理也可以操作剪切板。
下面是写入  "I am Broly!" 到剪切板:
  1. mshta vbscript:ClipboardData.SetData("text","I am Broly!")(close)
复制代码

作者: Batcher    时间: 2011-1-26 13:07

BAT调用WinClip.exe也行

http://bbs.bathome.net/thread-1766-1-1.html
作者: semiuel    时间: 2011-1-26 16:47

  1. @echo off&setlocal enabledelayedexpansion
  2. set /p env=输入:
  3. mshta vbscript:clipboarddata.setdata("text","%env%")(close)
  4. pause
复制代码

作者: 随风    时间: 2011-1-26 18:54     标题: 回复 2楼 的帖子

若若的问一句,信息写在哪里?
作者: broly    时间: 2011-1-26 21:14

  1. Dim strCopy
  2. strCopy="此处为你要输入的文本"
  3. Call SetClipboardText(strCopy)
  4. Sub SetClipboardText(Text)   '写入信息到剪切板
  5.     Dim objIE
  6.     Set objIE = CreateObject("InternetExplorer.Application")
  7.     objIE.Navigate("about:blank")
  8.     objIE.Document.ParentWindow.ClipboardData.SetData "text", Text
  9.     objIE.Quit
  10.     Set objIE=Nothing
  11. End Sub
复制代码

作者: 随风    时间: 2011-1-27 01:45

提示行10字符5错误,另外这个会打开ie浏览器,有不打开浏览器的吗?你那个方法二,在哪里写信息?
作者: wc726842270    时间: 2011-1-27 02:13     标题: 回复 7楼 的帖子

看看这个吧,来自脚本之家感觉不错http://www.jb51.net/article/16381.htm
另外我运行6L的代码也没有发现错误啊,并且IE也没有打开,所有的不是在后台执行的么?
作者: 随风    时间: 2011-1-27 09:40

我这里确实不行
作者: 随风    时间: 2011-1-27 10:22

回复2楼
找到原因了,我默认的是世界之窗浏览器
当默认ie为浏览器时正常,但若是打开了世界之窗浏览器再运行则会出错。
看来这种方法还是有很大局限性啊
麻烦再问下,你的第二种方法需写入剪贴板的内容在哪输入?
作者: broly    时间: 2011-1-27 10:58

两个方法感觉各有优缺。
方法一的缺陷是,运行的时候,你不能打开浏览器(我的默认浏览器是搜狗,只要打开就出错)。另外,运行时会有提示是否允许访问剪切板(这个可以设置)
方法二的缺陷(可能不能说是缺陷,个人认为而已),运行时,窗口会失去激活状态,然后又获得状态。即批处理运行mshta命令的效果一样

  1. Dim strCopy
  2. strCopy="此处为你要输入的文本"
  3. Call SetClipboardText(strCopy)
  4. Sub SetClipboardText(Text)   '写入信息到剪切板
  5.     Dim wsh
  6.     Set wsh = CreateObject("WScript.Shell")
  7.     wsh.Run "mshta vbscript:ClipboardData.SetData("&chr(34)&"text"&chr(34)&"," &Chr(34)& Text &Chr(34)& ")(close)",0,True
  8.     set wsh=Nothing
  9. End Sub
复制代码

[ 本帖最后由 broly 于 2011-1-27 11:12 编辑 ]
作者: 随风    时间: 2011-1-27 11:41     标题: 回复 11楼 的帖子

感谢,就是他了 ^_^




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