使用VBScript清空剪贴板

6
如何在Win32上使用VBScript清除剪贴板?

CreateObject("WScript.Shell").Run "mshta ""about:<head><hta:application showintaskbar=no windowstate=minimize /><script>window.clipboardData.setData('text','');window.close();</script></head>""", 0, False - omegastripes
1个回答

8

这个操作不能直接完成,但是您可以让一个应用程序来完成。使用命令行工具clip可以清空剪贴板:

Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "cmd.exe /c echo. >NUL  | clip", 0, True

另一种方法是使用具有COM接口和可以操作剪贴板的应用程序,例如Microsoft Word和Internet Explorer。

这种方法可以使用Internet Explorer,但可能会弹出用户对话框:

Set slaveApplication = CreateObject("InternetExplorer.Application")
slaveApplication.Navigate("about:blank")
slaveApplication.document.parentwindow.clipboardData.SetData "text", ""
slaveApplication.Quit

1
第一个很酷。第二个你可以通过将“about: blank”添加到受信任站点来解决。 - Andy E
1
关于第一个版本,“echo off | clip”比“echo.> NUL | clip”简单一些(请参阅https://www.ghacks.net/2016/10/31/three-methods-to-clear-the-windows-clipboard/) - Antoni

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接