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

[已解决]VBS怎样写入信息到剪切板?

[复制链接]
发表于 2011-1-26 01:50:26 | 显示全部楼层 |阅读模式
vbs写入信息到剪切板
求一代码
写入信息到剪切板,比如 var=12345
要求将12345写入到剪切板,不要模拟按键那种。

[ 本帖最后由 随风 于 2011-1-27 11:42 编辑 ]

评分

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

查看全部评分

发表于 2011-1-26 12:43:44 | 显示全部楼层
方法一:
下面是一个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)
复制代码
发表于 2011-1-26 13:07:55 | 显示全部楼层
BAT调用WinClip.exe也行

http://bbs.bathome.net/thread-1766-1-1.html
发表于 2011-1-26 16:47:15 | 显示全部楼层
  1. @echo off&setlocal enabledelayedexpansion
  2. set /p env=输入:
  3. mshta vbscript:clipboarddata.setdata("text","%env%")(close)
  4. pause
复制代码
 楼主| 发表于 2011-1-26 18:54:30 | 显示全部楼层

回复 2楼 的帖子

若若的问一句,信息写在哪里?
发表于 2011-1-26 21:14:53 | 显示全部楼层

  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:44 | 显示全部楼层
提示行10字符5错误,另外这个会打开ie浏览器,有不打开浏览器的吗?你那个方法二,在哪里写信息?
发表于 2011-1-27 02:13:40 | 显示全部楼层

回复 7楼 的帖子

看看这个吧,来自脚本之家感觉不错http://www.jb51.net/article/16381.htm
另外我运行6L的代码也没有发现错误啊,并且IE也没有打开,所有的不是在后台执行的么?
 楼主| 发表于 2011-1-27 09:40:33 | 显示全部楼层
我这里确实不行
 楼主| 发表于 2011-1-27 10:22:53 | 显示全部楼层
回复2楼
找到原因了,我默认的是世界之窗浏览器
当默认ie为浏览器时正常,但若是打开了世界之窗浏览器再运行则会出错。
看来这种方法还是有很大局限性啊
麻烦再问下,你的第二种方法需写入剪贴板的内容在哪输入?
发表于 2011-1-27 10:58:05 | 显示全部楼层
两个方法感觉各有优缺。
方法一的缺陷是,运行的时候,你不能打开浏览器(我的默认浏览器是搜狗,只要打开就出错)。另外,运行时会有提示是否允许访问剪切板(这个可以设置)
方法二的缺陷(可能不能说是缺陷,个人认为而已),运行时,窗口会失去激活状态,然后又获得状态。即批处理运行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 编辑 ]

评分

参与人数 2PB +20 技术 +1 收起 理由
Batcher + 1 乐于助人
随风 + 20 谢谢

查看全部评分

 楼主| 发表于 2011-1-27 11:41:55 | 显示全部楼层

回复 11楼 的帖子

感谢,就是他了 ^_^
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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