【问题标题】:Window not activating/appearing in front窗口未激活/出现在前面
【发布时间】:2017-03-10 05:10:49
【问题描述】:

我有一个脚本,可以打开网页,登录,然后打开一个程序,并且应该将程序带到前面并使其全屏显示。它会打开窗口,但并不总是将其带到前面,也不会全屏显示。任何人都可以提供任何帮助吗?这是我的代码:

; Closes last dialog if still open
Sleep(5000)
Send("{ENTER}")
Sleep(500)

; Wait for program to open
WinWait("[CLASS: Program example]","", 5)

;Brings Program to front
if WinExists("[CLASS: Program example]") Then
   WinActivate("[CLASS: Program example]")
EndIf

Sleep(500)

; Sets program fullscreen
WinSetState("[ACTIVE]", "", @SW_MAXIMIZE)

我添加了 WinWait 以查看是否有帮助,但没有。窗户只是留在后面,从不移动。感谢您提供的任何帮助。

【问题讨论】:

  • WinWait()WinActivate() 返回窗口句柄。将其保存在变量中。可以肯定的是,这个窗口在前面,你应该使用:WinSetOnTop($hWnd, '', 1)

标签: autoit


【解决方案1】:

有时 AutoIt 不会执行某些任务,因为同时发生了一些干扰命令的事情。确保事情正常进行的最佳方法是始终检查任务是否已执行,如果未执行则重试。这个循环会解决你的问题。

;Brings Program to front
While Not WinActive("[CLASS: Program example]")
    WinActivate("[CLASS: Program example]")
    Sleep(1000) ; Wait one second (or any seconds you want)
WEnd

【讨论】:

    猜你喜欢
    • 2021-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多