查看文章 |
[注:UMU 只在 Windows Server 2003 SP2 R2 + IE7 + 增强安全配置环境下测试本文的例子]
有时候仅用 MsgBox 或 WScript.Echo 这类常规的输出方式有点不足,对于一些文本,可能我们希望能在显示的同时,也存入剪贴板。当然 VBS 本身没有操作剪贴板的函数,这个任务还需要依靠 Automation/OLE 对象。
方法一,使用 htmlfile 对象: 此方法在网络上很容易搜索到,可以显示剪贴板里的文本,可惜在 IE7 的系统环境下无法工作。 ' 30_GetClipData_htmlfile.vbs WScript.Echo CreateObject("htmlfile").parentWindow.clipboardData.getData("text")
方法二,使用 InternetExplorer.Application 对象: 下面代码也是网络上流行的,可以设置剪贴板里的文本,可惜在 IE7 的系统环境下默认会弹出询问框。 ' 30_GetClipData_IEA.vbs Dim objIE
方法三,使用外部程序 Clip.exe 以上两个方法在 IE7 下不能工作或者工作得不好,如果是写剪贴板可以考虑调用外部程序 Clip.exe,这个程序是 Windows Server 2003 系统自带的(XP 没有),使用 WSH 的 Run 函数隐藏运行即可: Dim szBuf szBuf = InputBox("请输入要存放在剪贴板的文字:", "输入", "UMU WSH 30_SetClipData_ClipEXE.vbs") If Len(szBuf) Then
方法四,使用 Office 对象 Word 版,读剪贴板: ' 30_GetClipData_Word.vbs Dim objWord
objWord.Selection.PasteAndFormat (wdFormatPlainText) objWord.Quit False WScript.Echo strBuf Word 版,写剪贴板: Dim objWord
objWord.Selection.Text = "UMU WSH 30_SetClipData_Word.vbs" objWord.Quit False 用 Excel 也可以,在 Excel 里录制宏研究一下代码就可以了。 |