Flasher
|
Posted: Thu Jan 05, 2017 10:07 Post subject: Снятие выделения по Esc |
|
|
При использование быстрой фильтрации [ Настройка: Быстрый поиск > Буква (с диалогом поиска) ] стандартное назначение на Esc комадны cm_ClearAll не даёт возможность вернуться к нефильтрованному списку, как это происходит по умолчанию. Задавался ранее этим вопросом здесь (п. 5) и здесь.
Поскольку запрошенная реализация в Twinkey меня не устраивает, набросал скрипт: Code: | ;••••••••••••••••••••••••••••••• AHK ••••••••••••••••••••••••••••••••
; Снятие/восстановление выделения с объектов в активной панели по Esc
; Условие: TC 9.0+. Запускать желательно контентным плагином Autorun.
;••••••••••••••••••••••••••••••••••••••••••••••• Автор: Flasher © •••
#NoEnv
#NoTrayIcon
ListLines, Off
#KeyHistory, 0
SetBatchLines,-1
#SingleInstance, Off
DetectHiddenWindows, On
If DupComplete() || RegExMatch(StrGet(DllCall("GetCommandLine",Ptr)), "i)\s/(restart|r|force|f)\s")
ExitApp
DupComplete()
{ WinGet, List, List, % A_ScriptFullPath " ahk_class AutoHotkey"
Loop % List
If WinExist("ahk_id" List%A_Index%) != A_ScriptHwnd && R := true
WinClose
Return R
}
WinWaitClose, ahk_class TTOTAL_CMD
ExitApp
#IfWinActive, ahk_class TTOTAL_CMD
$Esc::
ControlGetFocus, Class, A
If !InStr(Class, "TMyListBox") || WinExist("ahk_class #32768") || MainMenuFocus()
SendInput, {Esc}
Else
{ N := SubStr(Class, 0) = 2 ? 1 : 0
SendMessage, 1074, % 1006-N, 0,, A
Sel := % ErrorLevel
SendMessage, 1074, % 8 - N, 0,, A
ControlGetPos, x, y, w, h,, ahk_id %ErrorLevel%
PixelSearch,,, % x+w-5, % y, % x+w, % y+h/2, 0x333333,, Fast
If ErrorLevel
PostMessage, 0x433, 52 (Sel?4:9),,, A
Else
SendInPut, {Esc}
}
MainMenuFocus()
{ VarSetCapacity(MBI, size := 16 + A_PtrSize*4, 0)
NumPut(size, MBI)
DllCall("GetMenuBarInfo", Ptr, WinExist("A"), Int, 0xFFFFFFFD, Int, 0, Ptr, &MBI)
Return *(&MBI + 16 + A_PtrSize*3) & 1
} |
При повтроном вызове скрипта AHK-процесс самозавершается, тем самым давая возможность использовать его как инверсную команду-опцию (Вкл/Выкл).
При отсутствии экземляров TC процесс завершается. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Last edited by Flasher on Sat Jan 14, 2017 11:39; edited 8 times in total |
|