Orion9

|
Posted: Tue Mar 10, 2026 20:10 Post subject: |
|
|
AkulaBig
А какие глюки у автокликеров на видюхах и драйверах ? Я просто не пользовался, не сталкивался с таким.
| FallenAngel wrote: | | Или есть возможно избежать появления НагСкрина вообще? |
Видимо, да, раз AkulaBig говорит. Да вы и сами пользовались автокликером - видели, наверное.
Вообще-то, было бы интересно узнать, что за техника используется. Возможно и получится сделать то же самое на Autorun при помощи Loopback, разумеется.
Кстати, как-то я не сразу сообразил, но раз уж вы пользуетесь AutoHotkey на постоянной основе, то можно через него провернуть Shift + ЛКМ по заголовку листера, как вы хотели. Правда придется em_ команду создать в usercmd.ini. Простая посылка кода 60045 не работает почему-то, хотя я думал, что будет работать.
| Code: | [em_alight_lister]
cmd=60045 |
 Hidden text | Code: | #Requires AutoHotkey v2.0
+LButton::
{
if WinGetClass("A") = "TLister"
CheckMouseTitleArea()
}
Esc::ExitApp()
CheckMouseTitleArea()
{
CoordMode("Mouse", "Screen")
MouseGetPos(&x, &y, &hwnd)
try {
result := SendMessage(0x84, 0, (x & 0xFFFF) | ((y & 0xFFFF) << 16),, "ahk_id " hwnd)
} catch {
result := 0
}
IsInTitle := (result = 2) ; 2 = HTCAPTION (Title Bar)
if IsInTitle
SendTCUserCommand("em_alight_lister")
;SendMessage(1075, 60045, 0, , "ahk_class TTOTAL_CMD")
}
SendTCUserCommand(userCommand) {
static EM := 19781, WM_COPYDATA := 0x4A
ansiBuf := Buffer(StrPut(userCommand, 'CP0'))
StrPut(userCommand, ansiBuf, 'CP0')
COPYDATASTRUCT := Buffer(A_PtrSize * 3)
NumPut('Ptr', EM, 'Ptr', ansiBuf.size, 'Ptr', ansiBuf.ptr, COPYDATASTRUCT)
SendMessage WM_COPYDATA,, COPYDATASTRUCT,, 'ahk_class TTOTAL_CMD'
} |
В .aucfg файле, соответственно, нужно зарегистрировать код 60045
| Code: | RegisterCommand 60045 "AlignListerWindow"
SetHotkeyAction /K:C /H:0 /DM "AlignListerWindow"
Func AlignListerWindow()
If IniRead("~/R", COMMANDER_INI, "Lister", "Maximized", 0) = 0 Then
WinGetPos("x", "y", "w", "h")
IniWrite("~/R", COMMANDER_INI, "Lister", "x", x)
IniWrite("~/R", COMMANDER_INI, "Lister", "y", y)
IniWrite("~/R", COMMANDER_INI, "Lister", "dx", w)
IniWrite("~/R", COMMANDER_INI, "Lister", "dy", h)
Local hWnd = WinFind(0, "TLister")
If hWnd = 0 Then Return ShowHint("Окно листера не найдено")
WinSetPos(x, y, w, h, "", hWnd)
WinSetState(23, hWnd)
EndIf
EndFunc |
Вроде работает. Болван электронный помог, кстати. Без него я бы долго в справке возился  |
|