Тема: AHK: Одна горячая клавиша на два действия
Есть многокнопочная мышь. Скриптом сделано, чтобы кнопка мышки XButton1, открывала проводник, а на кнопку XButton2 - совершала события, которые совершала до этого кнопка XButton1. (ну, так вот надо).
Захотелось сделать так, чтобы при нажатии XButton2 над кнопкой "X" (Close) любого окна, это окно переносилось бы на другой моник.
Дак, вот вопрос друзья, как разделить эти события у кнопки XButton2? То есть, как сделать, чтобы именно над "X" нажатие XButton2 приводило к одному действию, а в любом другом случае нажатие XButton2 выполняло другое действие.
Вот код (кусок с действием над кнопкой "Х" взят с этого форума уже не помню и где , остальное всё кривенько, ну, я и не мастер)
XButton1::Run ::{20d04fe0-3aea-1069-a2d8-08002b30309d}
; Переместить активное окно на другой моник - click XButton2 на кнопке "крестик"
XButton2::
CoordMode, Mouse, Screen
MouseGetPos, mX, mY, Hwnd
SendMessage, 0x84,, (mX & 0xFFFF)|(mY & 0xFFFF)<<16,, ahk_id %Hwnd%
If ErrorLevel=20 ; HTCLOSE
move_window()
else
XButton2::XButton1
Return
move_window()
{
WinGetPos, winx, winy,,, A
WinGet, oldWin,ID,A
WinActivate, A
WinGet, mm, MinMax, A
WinRestore, A
If winx+5 >= 0
{
mult=1
Send , +#{Left}
}
else
{
mult=-1
Send , +#{Right}
}
if mm=1
WinMaximize, A
}
Оно вроде все работает, но после того, как окно переместится на другой экран - оно не активно (и похоже активным становится всё что угодно, что ниже этого окна, а это иногда приводит к нажиманию кнопок там, что не есть хорошо), и, чтобы активировать окошко, нужно еще раз кликнуть XButton2, а иначе, как будто мешает что-то...
ЗЫ. Иногда руками показать легче, чем объяснить.
ЗЫ. Сначала я просто сделал второй скрипт и повесил его на сочетание !XButton2. Но при одновременной работе двух скриптов, получалось так, что сочетание !XButton2 отрабатывало, а простое нажатие XButton2 ни к чему не приводило, что для меня тоже не очень понятно. Мне казалось, что это же разные гор. клавиши, почему тогда, одно блочило другое?
Вообщем, подскажите, други, есть ли возможность отслеживать над чем нажата кнопка мышки и как-то разделять это событие от события мышки по-умолчанию