【发布时间】:2014-08-06 12:16:43
【问题描述】:
我一直在网上搜索有关如何在 AppActive 中获得窗口焦点的解决方案,但找不到我需要的东西,或者至少无法理解。简而言之,我的代码在 SAP 系统中进行更改,然后保存,然后通过默认打印机生成 pdf。 “另存为”弹出窗口随机出现,我通过 AppActive 找到并通过发送密钥继续保存。
现在通常弹出窗口总是在顶部,这没有问题,但是,它很少出现并且没有焦点,而是在任务栏中闪烁。然后代码找到它并继续放置文件名。由于它没有焦点,因此它会将名称放在焦点所在的位置(通常是 SAP)。
如何确保窗口始终处于焦点位置?我对编码很陌生,所以我喜欢简单的解决方案:)。
Set WScr = CreateObject("WScript.Shell")
Do
WScript.Sleep 50
Loop Until WScr.AppActivate("Save PDF File As") ' loops until save as popup appears
WScript.Sleep 1000
FileName = filepath & order(i) & ".pdf"
WScr.SendKeys FileName
WScript.Sleep 250
WScr.SendKeys "{ENTER}"
WScr.SendKeys "{TAB}" ' in case same name exists, overwrite question tab chooses yes
WScr.SendKeys "{ENTER}" ' press yes
WScript.Sleep 500
Set WScr=Nothing
【问题讨论】: