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
大家好,我目前正在编写脚本以更轻松地管理 (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