仅当某个 window 打开时,我怎样才能让我的 GUI 保持最大化?

How can I make I make my GUI stay maximized ONLY if a certain window is open?

我有一个图形用户界面可以帮助我自动化某些事情,但仅限于特定程序中的某些事情。我希望我的 GUI 在我使用它的程序未激活时自行最小化,并在我再次激活 window 时能够自行最大化。任何帮助表示赞赏。还要记住,我对此很陌生!谢谢

While 1
    Sleep(100)
If WinActive("My Program") Then
   WinSetState("My GUI", "", @SW_RESTORE)
   WinSetOnTop("My GUI","",1)
Else
   WinSetState("My GUI", "", @SW_MINIMIZE)
Endif
Switch $nMsg
Case $button1
   function()
Case $button2
   function()
EndSwitch
Wend

看起来您的代码会持续将您的 GUI 设置在顶部,并在您的程序处于活动状态时最小化。这可能有帮助:

Global $ghActive
Global $ghMyProgram = WinGetHandle("My Program")
; if you're not already using a global handle for your gui
Global $ghMyGUI = WinGetHandle("My GUI")
While 1
    Sleep(100)
    $ghActive = WinGetHandle("[ACTIVE]")
    If $ghActive = $ghMyProgram Then
        WinSetState($ghMyGUI, "", @SW_RESTORE)
        WinSetOnTop($ghMyGUI, "", 1)
    ElseIf $ghActive <> $ghMyGUI And $ghActive <> $ghMyProgram Then
        WinSetOnTop($ghMyGUI, "", 0)
        WinSetState($ghMyGUI, "", @SW_MINIMIZE)
    EndIf
    Switch $nMsg
        Case $button1
            function()
        Case $button2
            function()
    EndSwitch
WEnd