1 (изменено: cyberlife8, 2013-01-24 15:05:38)

Тема: AHK: Назначить хоткеи в разные окна

Здравствуйте !

Возникла небольшая проблема:
Есть два разных типа окон, мне нужно чтобы в окно по курсором шла команда (клик по заданным координатам). В первом типе окон - всё работает замечательно

+ открыть спойлер
SetDefaultMouseSpeed, 0

Loop
{
  MouseGetPos, X, Y, Win
  If(Win != PrevWin)
  {
    PrevWin := Win
    WinActivate, ahk_id %Win%
  }
  Sleep, 100
}
return

~u::
WinWait, HoldEm - -cyberlife8-, 
IfWinNotActive, HoldEm - -cyberlife8-, , WinActivate, HoldEm - -cyberlife8-, 
WinWaitActive, HoldEm - -cyberlife8-, 
Click 111,  328
return

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

+ открыть спойлер
SetDefaultMouseSpeed, 0

Loop
{
  MouseGetPos, X, Y, Win
  If(Win != PrevWin)
  {
    PrevWin := Win
    WinActivate, ahk_id %Win%
  }
  Sleep, 100
}
return

~u::
WinWait, Besancon NLH 3?/6?, 
IfWinNotActive, Besancon NLH 3?/6?, , WinActivate, Besancon NLH 3?/6?, 
WinWaitActive, Besancon NLH 3?/6?, 
MouseClick, left,  334,  373
return

~p::Pause

Или спрошу по другому: можно ли назначить один и тот же хоткей на действия в разных окнах (клик в разных координатах) ?

2

Re: AHK: Назначить хоткеи в разные окна

Координаты указаны относительно активного окна или относительно экрана?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

3 (изменено: cyberlife8, 2013-01-24 16:54:27)

Re: AHK: Назначить хоткеи в разные окна

Относительно активного окна.

4

Re: AHK: Назначить хоткеи в разные окна

cyberlife8 пишет:

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

Попробуй воспользоваться ControlClick.

cyberlife8 пишет:

можно ли назначить один и тот же хоткей на действия в разных окнах (клик в разных координатах) ?

#IfWinActive / #IfWinExist
#If

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

5

Re: AHK: Назначить хоткеи в разные окна

Спасибо ! "#IfWinActive" помогло мне, а можно узнать ещё: можно ли сделать так, чтобы после "клика" курсор возвращался в прежнее положение ? Также, скрипт не дает открывать другие окна (пуск и т.д.) можно ли это исправить ?

6

Re: AHK: Назначить хоткеи в разные окна

cyberlife8 пишет:

можно ли сделать так, чтобы после "клика" курсор возвращался в прежнее положение ?

MouseGetPos
MouseMove

cyberlife8 пишет:

скрипт не дает открывать другие окна (пуск и т.д.) можно ли это исправить ?

Можно попробовать использовать ControlClick вместо Click.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

7 (изменено: cyberlife8, 2013-01-24 21:25:07)

Re: AHK: Назначить хоткеи в разные окна

teadrinker пишет:
cyberlife8 пишет:

можно ли сделать так, чтобы после "клика" курсор возвращался в прежнее положение ?

MouseGetPos
MouseMove

Что то не получается, я правильно понял что вместо "Click" надо поставить "MouseGetPos" ?

Сейчас скрипт выглядит так:

+ открыть спойлер
SetDefaultMouseSpeed, 0

Loop
{
  MouseGetPos, X, Y, Win
  If(Win != PrevWin)
  {
    PrevWin := Win
    WinActivate, ahk_id %Win%
  }
  Sleep, 100
}

~p::Pause
return

~u::
#IfWinActive ahk_class #32770
Click 111,  328
return

~u::
#IfWinActive ahk_class GFX_INT_DLG_WINDOW_GAME
Click 267,  321
return

8

Re: AHK: Назначить хоткеи в разные окна

Синтаксис использования #IfWinActive неверный, по ссылке есть примеры. Сначала MouseGetPos, считываем координаты, затем клик, затем MouseMove на считанные координаты. Если вместо Click использовать ControlClick, курсор перемещаться не будет, необходимость возвращать его отпадёт.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

9 (изменено: cyberlife8, 2013-01-25 00:25:02)

Re: AHK: Назначить хоткеи в разные окна

Вроде бы разобрался, но остался последний вопрос: можно ли с помощью AHK сделать так чтобы активное окно (выскакивающее на передний план) было подсвечено цветной рамкой, до тех пор пока я не пошлю в него команду ? Всего окон 12, находятся они в строго определённых местах.

10

Re: AHK: Назначить хоткеи в разные окна

Оконтуривание рамки активного окна

11

Re: AHK: Назначить хоткеи в разные окна

Спасибо !