AUTOIT GUI 管理在后台暂停脚本

AUTOIT GUI Management Pause Script when in Background

大家好,我目前正在编写脚本以更轻松地管理 (kill/delete) 损坏的 WTS 配置文件。因此,为了让我们的支持人员更轻松,我想出了一个 autoit 脚本来管理它。

除了我的脚本正在侦听 "Enter" 键外,我已经顺利完成了所有 运行,如果按下此键,他会调用函数等等。 但是当我的脚本在后台 运行 并且用户想要 google 某事或任何事情时,他也会这样做,他总是注册回车键。

现在我的问题是,我该如何解决这个问题,因为如果它是一个复杂的搜索(带有星号等),它会在存储配置文件的网络共享上生成不必要的 I/O。

有问题的代码:

    While 1
        $nMsg = GUIGetMsg() 
        Switch $nMsg
            Case $GUI_EVENT_CLOSE
                Exit
            Case $SearchButton 
                $sSearchString = GUICtrlRead($SubmitField) & "*" 
                If $sSearchString = "*" Then ;
                    _OutputConsole_Updater()
                    GUICtrlSetData($ConsoleOutput, "[" & @HOUR & ":" & @MIN & ":" & @SEC & "] -" & " Keine Eingabe getätigt, bitte Suchbegriff eingeben")
                Else
                    _ReloadBox()
                    _SearchAll()
                EndIf
            Case $DeleteButton
                _DeleteSelection()
            Case $DeleteAll
                    _DeleteAllCheck()           
            Case $nMsg = _IsPressed("0D")
                $sSearchString = GUICtrlRead($SubmitField) & "*" ;
                If $sSearchString = "*" Then ;
                    _OutputConsole_Updater()
                    GUICtrlSetData($ConsoleOutput, "[" & @HOUR & ":" & @MIN & ":" & @SEC & "] -" & " Keine Eingabe getätigt, bitte Suchbegriff eingeben")
                Else
                    _ReloadBox()
                    _SearchAll()
                EndIf
        EndSwitch
WEnd

你用HotkeySet操作吗?然后仅当您的脚本处于活动状态时才激活该功能

        If WinActive($scriptTitle) = 0 Then
            _setHotKeys()
        Endif

Func _setHotKeys($state = 1)
    If $state = 1 Then
        HotKeySet('!1')
        HotKeySet('!2')
        HotKeySet('!3')
        HotKeySet('!4')
        HotKeySet('!5')
        HotKeySet('!6')
        HotKeySet('!7')
        HotKeySet('!8')
    ElseIf $state = 0 Then
        HotKeySet('!1', '_setTab0')
        HotKeySet('!2', '_setTab1')
        HotKeySet('!3', '_setTab2')
        HotKeySet('!4', '_setTab3')
        HotKeySet('!5', '_setTab4')
        HotKeySet('!6', '_setTab5')
        HotKeySet('!7', '_setTab6')
        HotKeySet('!8', '_setTab7')
    EndIf
EndFunc   ;==>_setHotKeys