vbscript - 使用 vbscript 保存快照

标签 vbscript automation screenshot clipboard browser-automation

我是 vbscript 的新手。我想保存使用 vbscript 打开的 Internet Explorer 窗口的 vbscript 拍摄的快照。

加载页面的代码

Dim IE, stateString
Set IE = WScript.CreateObject("InternetExplorer.Application")
ie.toolbar = 1
ie.statusbar = 1
ie.width = 999
ie.height = 500
ie.left = 20
ie.theatermode = false
ie.theatermode = true
ie.theatermode = false
ie.top = 50
ie.navigate("file:///C:\Users\Vinit_Tiwari\Documents\vbscripts\someform.html")
'stateString = cstr(ie.readystate)
waitforload(ie)


ie.visible = 1

Set wshShell = CreateObject("Wscript.Shell")

wshShell.AppActivate "Some Form"
wshShell.SendKeys "% x"

截图代码

Dim oWordBasic
set oWordBasic = CreateObject("Word.Basic")
oWordBasic.sendkeys "{prtsc}"
oWordBasic.AppClose "Microsoft Word"
Set oWordBasic = Nothing
Wscript.Sleep 2000

保存快照

dim paint
set paint = wshShell.exec("mspaint")
do while paint.status = 0:loop
wshShell.appactivate("untitled-Paint")'this returns false
Wscript.sleep 500
WshShell.SendKeys "^v"
wscript.sleep 500
wshshell.sendkeys "^s"
wscript.sleep 500
wshshell.sendkeys "d:\test.png"
wscript.sleep 500
wshell.sendkeys "{Enter}"
Set wshshell = Nothing

实际上,先前打开的 ie 窗口具有焦点并且击键被发送到 ie 而不是 paint。那么是否有任何函数执行与 AppActivate 相反的工作。

最佳答案

这行不通。按下打印屏幕按钮时,Microsoft Word 处于焦点状态。您可以通过完全不使用 Microsoft Word 轻松消除此问题。这不是必需的。 Print Screen 功能是系统热键,与 Microsoft Word 无关。您应该使用 Alt+PrintScreen 组合,它将当前聚焦窗口的屏幕截图捕获到剪贴板。

其次,如果焦点不是画图而不是 IE,那是因为您的窗口标题有误。你正在正确地做那部分。如果 AppActivate 找不到具有指定标题的窗口,则返回 false。老实说,Paint 一开始就应该有焦点,但最好先确保窗口被激活。

另外,这是一个很老的系统吗?出于好奇,您为什么要使用 Word.Basic 自动化对象?

关于vbscript - 使用 vbscript 保存快照,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10073224/

相关文章:

html - 同时在两个不同的 HTML 输入框中输入文本

html - 如何在div中显示html内容并在HTA中的html文件中添加内容

scripting - 如果选项卡已打开并使用 Vbscript 中的新超链接刷新,我如何识别它?

ios - Xcodes UI 测试显示过时的页面信息

java - 获取 Java 小程序的屏幕截图

java - 有没有办法在 codenameone 中截取屏幕截图(尤其是对于 Android)?

vbscript - 如何使用 vbscript 自动按下 F5 键?

entity-framework - 更新 Entity Framework 中上次迁移的模型快照并重新应用它

java - 如何提高 JavaFX 中场景屏幕截图生成的图像的 DPI 质量

javascript - Cypress 环境变量未定义