1

Тема: AHK: Эмуляция нажатия кнопки при клике на определанную область экрана

Для навигации в инете с помощью Оперы на планшете требуется эмуляция нажатия кнопок PgUp и Pgdn
Хочу сделать чтобы эти кнопки срабатывали при нажатии на определенную область экрана...
Так же требуется эмуляция нажатия кнопок up, down, стрелка в право и стрелка в лево, для игрушек типа гонок
Не подскажете ли примеры скриптов на основе которых это можно было бы сделать.
PS. Так же желательно чтобы прога "понимала" какое окно активно, для эмуляции соответствующих нажатий на клавиши т.к. при нажатии на определенные области понадобятся различные комбинации клавиш для соответствующих программ

2

Re: AHK: Эмуляция нажатия кнопки при клике на определанную область экрана

Можно "повесить" на ЛКМ проверку координат (определённую область экрана). Вам остаётся только воспользоваться поиском по форуму и документацией к AutoHotkey.

3

Re: AHK: Эмуляция нажатия кнопки при клике на определанную область экрана

ypppu пишет:

Можно "повесить" на ЛКМ проверку координат (определённую область экрана). Вам остаётся только воспользоваться поиском по форуму и документацией к AutoHotkey.

Ткните носом в пример пжалуйста а то найденый мною скрипт

PartOfWidth := A_ScreenWidth/6
~LButton::
   MouseGetPos, x_pos
   If (x_pos <= PartOfWidth)
      Send, {F9}
   Return
SetFormat, FloatFast, 0
MsgBox,,, % "текущее разрешение: "A_ScreenWidth " на "A_ScreenHeight, 1
PartOfWidth := A_ScreenWidth/6 ; можно задать любую величину деления ширины
MsgBox,,, % "1/"(A_ScreenWidth/PartOfWidth)" часть ширины экрана", 1
SetTimer, ChaseCoordinates, 100
Return
 
ChaseCoordinates:
   MouseGetPos, x_pos, y_pos
   ToolTip, % "координаты: "x_pos ", y_pos
   Return
 
LButton::
   If (x_pos <= PartOfWidth)
      MsgBox,,, % "клик в районе заданой части ширины экрана: "x_pos "("PartOfWidth ")", 1
   Else
      MsgBox,,, % "клик вне заданой части ширины экрана: "x_pos "("PartOfWidth ")", 1
   Return
 
Esc::ExitApp

Почему то выдает ошибку...
Так то в прогрммировании кой че соображаю и на Лиспе и на Делфях по писывал но тут просто не хватает примеров с обрабокой клика ЛКМ....

4

Re: AHK: Эмуляция нажатия кнопки при клике на определанную область экрана

Выдаёт ошибку по разным причинам.
Обработка клика ЛКМ происходит при наличии в скрипте Lbutton::
Координаты курсора мыши при этом могут определятся при помощи MouseGetPos
Текущее значение ширины экрана в пикселях хранится в A_ScreenWidth, высоты - в A_ScreenHeight

«Определённая область» определяется фантазией


~LButton::
CoordMode, Mouse, Screen
MouseGetPos, x, y

If (x > A_ScreenWidth*2/3) && (y > A_ScreenHeight*2/3)
  Tooltip Клик справа внизу

If (x > A_ScreenWidth*2/3) && (y > A_ScreenHeight/3 && y < A_ScreenHeight*2/3) 
  Tooltip Клик справа по центру
  
If (x > A_ScreenWidth*2/3) && (y < A_ScreenHeight/3) 
  Tooltip Клик справа вверху

Return

esc::ExitApp

5 (изменено: Grey, 2011-09-16 23:11:41)

Re: AHK: Эмуляция нажатия кнопки при клике на определанную область экрана

DEM пишет:

Почему то выдает ошибку...

Ну правильно, зачем два скрипта совмещать? Вот ещё пример вычисления координат:

CoordMode, Mouse
SetFormat, FloatFast, 0
PartOfWidth := A_ScreenWidth/8
PartOfHeight := A_ScreenHeight/8
RightBorderOfWidth := A_ScreenWidth - PartOfWidth
DownBorderOfHeight := A_ScreenHeight - PartOfHeight
MsgBox,,, % "текущее разрашение: "A_ScreenWidth " на "A_ScreenHeight, 1
MsgBox,,, % "размер части ширины экрана, ширина гъюи: "PartOfWidth
        . "`nразмер части высоты экрана, высота гъюи: "PartOfHeight, 1
MsgBox,,, % "правая граница ширины экрана: "RightBorderOfWidth
        . "`nнижняя граница высоты экрана: "DownBorderOfHeight, 1
Loop, 5
{
   RevealGUI()
   Sleep, 250
   Gui, Destroy
   Sleep, 250
}
RevealGUI()
SetTimer, ChaseCoordinates, 100
Return

RevealGUI()
{
   global
   Gui, Color, Red
   Gui, -Caption +ToolWindow +LastFound +AlwaysOnTop +Border
   Gui, Show, NoActivate x%RightBorderOfWidth% y%DownBorderOfHeight%
   Gui, Show, w%PartOfWidth% h%PartOfHeight%
}

ChaseCoordinates:
   MouseGetPos, x_pos, y_pos
   ToolTip, % "текущие координаты: "x_pos ", "y_pos
   Return

LButton::
   If (x_pos >= RightBorderOfWidth && y_pos >= DownBorderOfHeight)
      MsgBox, 64,, % "клик в районе заданой части ширины/высоты экрана"
              . "`nx: "x_pos " ("RightBorderOfWidth ") "
              . "`ny: "y_pos " ("DownBorderOfHeight ")", 1
   Else
      MsgBox, 48,, % "клик вне заданой части ширины/высоты экрана"
              . "`nx: "x_pos " ("RightBorderOfWidth ") "
              . "`ny: "y_pos " ("DownBorderOfHeight ")", 1
   Return

Esc::ExitApp

6 (изменено: alexii, 2011-09-18 01:45:29)

Re: AHK: Эмуляция нажатия кнопки при клике на определанную область экрана

creature.ws
Пасиб, вот то, нужно.....
Grey
Ошибку скрипт выдает пчему то....
Вот тут: AHK: Многодельность клавиши нашел то, что мне нужно в достаточном количестве...

7

Re: AHK: Эмуляция нажатия кнопки при клике на определанную область экрана

DEM, используйте тэг «url» для оформления ссылок на форуме. Я поправил Ваш пост.