使用 AutoIt 检查 window 是否有焦点

Check if window has focus with AutoIt

我想知道是否可以检查 window 是否在 AutoIt 中有焦点。我已经检查过并没有发现太多。我尝试过使用 WinSetOnTop 但这似乎没有做任何事情所以我考虑使用 WinActivate 但这似乎没有做我需要的。

我想这样做的原因是因为我有这个应用程序作为恶作剧而写,我不希望我正在恶作剧的同事忽略 window当它自动启动时。我想在启动文件夹中添加它的快捷方式,我们有几个应用程序在启动时 运行,所以我希望我的应用程序始终位于最前面,或者在用户尝试忽略时大声粗鲁的话应用程序。

这可能吗,如果可以的话,你能帮帮我吗,因为我没有想法。

不管你的动机如何,你都可以尝试WinWaitActive

语法:

WinWaitActive ( "title" [, "text" [, timeout = 0]] )

可能有用的示例:

Func Example()
    ; Run Notepad
    Run("notepad.exe")

    ; Wait 10 seconds for the Notepad window to appear.
    WinWaitActive("[CLASS:Notepad]", "", 10)

    ; Wait for 2 seconds to display the Notepad window.
    Sleep(2000)

    ; Close the Notepad window using the classname of Notepad.
    WinClose("[CLASS:Notepad]")
EndFunc   ;==>Example

参考:
https://www.autoitscript.com/autoit3/docs/functions/WinWaitActive.htm