1

Тема: AHK: Назначение хоткея клику мыши на краю экрана

Хочу реализовать глобальный хоткей, который срабатывает при клике правой кнопкой мыши на правом краю экрана (в любом месте по вертикали). Наверное, должен быть еще запас в несколько пикселей от границы. Т.е. происходит отслеживание положения курсора, если происходит нажатие ПКМ в области ~ 2 пикселя от границы экрана - срабатывает хоткей.
Было бы хорошо, если бы скрипт не зависел от текущего разрешения.

2

Re: AHK: Назначение хоткея клику мыши на краю экрана

Т.е. происходит отслеживание положения курсора, если происходит нажатие ПКМ в области ~ 2 пикселя от границы экрана - срабатывает хоткей.

Наоборот
При клике ПКМ происходит определение координат клика и, если координаты лежат в заданном диапазоне, выполняются требуемые действия.

3

Re: AHK: Назначение хоткея клику мыши на краю экрана

Помница была уже подобная тема:

RButton::
   MouseGetPos, x_pos
   If % x_pos>=A_ScreenWidth-2
      SoundBeep ; глобальный бип :)
   Else
   {
      Send, % "{"A_ThisHotkey " Down}"
      KeyWait, % A_ThisHotkey
      Send, % "{"A_ThisHotkey " Up}"
   }
   Return

4 (изменено: creature.ws, 2012-06-24 05:46:51)

Re: AHK: Назначение хоткея клику мыши на краю экрана

Или

#If f(A_ScreenWidth - 2)
   RButton::SoundBeep
#If

f(x)
{
    CoordMode, Mouse
    MouseGetPos, x_pos
    return x_pos >= x
}

5

Re: AHK: Назначение хоткея клику мыши на краю экрана

Как его привязать к горячей клавише, допустим, F11, по которой открывается какое-то приложение:
F11::run....

6

Re: AHK: Назначение хоткея клику мыши на краю экрана

creature.ws пишет:

Или

...

Угуг, эргономика рулит!

Xwansu пишет:

Как его привязать к горячей клавише, допустим, F11...

#If f(A_ScreenWidth - 2)
   RButton::Send, {F11}
#If

F11::Run, ...
...

7 (изменено: Xwansu, 2012-06-24 18:24:43)

Re: AHK: Назначение хоткея клику мыши на краю экрана

Many thanks Grey & creature.ws!
Эта штука с активными краями очень удобна. Можно еще развить идею и задействовать уже не только правый край, а все 3(4). Чтобы было больше горячих зон, каждую сторону делим на 2. Итого, оптимально получим 6(8) активных сторон!
-------
Какой параметр нужно заменить, чтобы задействовать левую сторону?

8

Re: AHK: Назначение хоткея клику мыши на краю экрана

Xwansu пишет:

Какой параметр нужно заменить, чтобы задействовать левую сторону?

Методом проб и ошибок состряпал такой вариант:

#If f(A_ScreenWidth - 1918)
   LButton::Send, {F9}
#If
F9::Run R:\
 f(x)
{
    CoordMode, Mouse
    MouseGetPos, x_pos
    return x_pos <= x
}

Но он просто не будет работать на другом разрешении, отличном от 1920x1080. Есть ли способ решить проблему?

9

Re: AHK: Назначение хоткея клику мыши на краю экрана

#If f(2)
   LButton::Run R:\
#If

f(x)
{
    CoordMode, Mouse
    MouseGetPos, x_pos
    return x_pos <= x
}

Координаты считаются от левого вернего угла монитора. Задача сводится к определению, лежит ли проекция точки клика на заданном горизонтальном отрезке

10

Re: AHK: Назначение хоткея клику мыши на краю экрана

creature.ws пишет:

Координаты считаются от левого вернего угла монитора. Задача сводится к определению, лежит ли проекция точки клика на заданном горизонтальном отрезке

С A_ScreenWidth, вроде бы, понятно, а с A_ScreenHeight пока ничего не выходит (хоткей срабатывает по всему экрану)