LonerD
|
Posted: Sun Jun 15, 2014 22:54 Post subject: |
|
|
;================================================================
Ап. И ещё один вариант - микс из таймера (значение можно регулировать) и хука движения мыши. У меня вроде не "залипает" после активации других окон. Пока не работает проверка на зажатую левую кнопку (при копировании/перемещении). С панелями быстрого просмотра ещё тоже не разбирался, наверняка долгая история с ними будет.
Code: |
;================================================================
; Сделать файловую панель активной при наведении на неё курсора мыши
; Альтернативный вариант
; Версия скрипта: 1.05a
; Дата создания: 2014.06.15
; Автор скрипта: LonerD
; Фрагменты кода: OnMyDSeeAtAll, serzh82saratov
; Сайт: http://dreamlair.net
;================================================================
#NoEnv
#NoTrayIcon
#Persistent
#KeyHistory, 0
#SingleInstance, force
ListLines, Off
hHookMouse := DllCall("SetWindowsHookEx" . (A_IsUnicode ? "W" : "A")
, Int, WH_MOUSE_LL := 14
, Int, RegisterCallback("LowLevelMouseProc", "Fast")
, Ptr, DllCall("GetModuleHandle", UInt, 0, Ptr)
, UInt, 0, Ptr)
Return
LowLevelMouseProc(nCode, wParam, lParam)
{
Critical
SetTimer, mTimer, -50
Return DllCall("CallNextHookEx", Ptr, 0, Int, nCode, UInt, wParam, UInt, lParam)
}
mTimer:
If WinActive("ahk_class TTOTAL_CMD")
{
KeyWait, LButton
MouseGetPos,,,, mControl
if ( mControl ~= "ListBox" )
{
WinGet, TCHWND, ID, A
SeparateTree := 0
Loop, 3
{
ControlGetText, TMyText%A_Index%, TMyListBox%A_Index%, % "ahk_id " TCHWND
ControlGetText, LCLText%A_Index%, LCLListBox%A_Index%, % "ahk_id " TCHWND
if ( TMyText%A_Index% = "W_TreeList2" || LCLText%A_Index% = "W_TreeList2" )
{
SeparateTree := 2
break
}
else if ( TMyText%A_Index% = "W_TreeList1" || LCLText%A_Index% = "W_TreeList1" )
SeparateTree := 1
}
Loop, 3
TMyListBox%A_Index% := "ListBox" (SeparateTree + A_Index)
if ( mControl ~= TMyListBox1 )
PostMessage, 1075, 4002,,, % "ahk_id " TCHWND
else if ( mControl ~= TMyListBox3 )
PostMessage, 1075, 4001,,, % "ahk_id " TCHWND
else if ( mControl ~= TMyListBox2 )
{
WinGet, TCControls, ControlList, % "ahk_id " TCHWND
TCFTPMode := 0
Loop, Parse, TCControls, `n, `r
{
if ( A_LoopField ~= TMyListBox3 )
{
TCFTPMode := 1
break
}
}
PostMessage, 1075, 400 (TCFTPMode="1" ? 2:1),,, % "ahk_id " TCHWND
}
}
}
| W_TreeList2 _________________ Win11 x64 Eng | TC DreamLair eternal pre-α
Last edited by LonerD on Mon Jun 16, 2014 04:30; edited 1 time in total |
|