1 (изменено: Amon-Ra, 2011-11-05 14:37:58)

Тема: АНК: Клики мышью в нужном месте при изменении размера окна

Вот рабочий скрипт в окне на весь экран:

F12::     
   Loop 
   {
      MouseClick, Left, 900, 530
         Sleep, 500
      MouseClick, Left, 480, 620
      Loop 8
      {
         MouseClick, Left, 900, 680
         Sleep, 2000
      }
      MouseClick, Left, 583, 732
      MouseClick, Left, 700, 420
      Loop 4
      {
         MouseClick, Left, 900, 690
            Sleep, 2000
      }
      MouseClick, Left, 1080, 185
      MouseClick, Left, 750, 680
      MouseClick, Left, 840, 205
      Loop 3
      {
         MouseClick, Left, 380, 717
         SendEvent {Click 950, 300, down}{click 950, 530, up}
         MouseClick, Left, 640, 420
         Sleep, 2000
      }
      MouseClick, Left, 520, 390
      MouseClick, Left, 490, 717
      Sleep, 2000
      MouseClick, Left, 380, 717
      SendEvent {Click 950, 300, down}{click 950, 530, up}
      MouseClick, Left, 640, 420
         Sleep, 2000
      Loop 3
      {
         MouseClick, Left, 490, 717
         Sleep, 2000
      }
      MouseClick, Left, 1065, 205
   }
         Return


ESC::Pause

Мне нужно что бы он работал и в окне не на весь экран, и при этом нажимались те кнопки которые под координатами мыши в коде для окна на весь экран.

2

Re: АНК: Клики мышью в нужном месте при изменении размера окна

В таких случаях нужно использовать ControlClick, а не MouseClick.

3

Re: АНК: Клики мышью в нужном месте при изменении размера окна

Если при изменении размера окна координаты «тех» кнопок меняются –работать в окне скрипт будет лишь если изменить соответствующие координаты.

4

Re: АНК: Клики мышью в нужном месте при изменении размера окна

Александр_ пишет:

В таких случаях нужно использовать ControlClick, а не MouseClick.

Можете привести пример, а то у меня не получается рабочая версия

5 (изменено: Александр_, 2011-11-05 16:19:47)

Re: АНК: Клики мышью в нужном месте при изменении размера окна

Amon-Ra пишет:

Можете привести пример, а то у меня не получается рабочая версия

Run calc.exe, , , PID ;запускаем калькулятор
sleep 1000 ; ждём секунду
; набираем "123" через классNN
ControlClick button30, ahk_pid %PID%
ControlClick button36, ahk_pid %PID%
ControlClick button41, ahk_pid %PID%
sleep 1000 ; ждём секунду
ControlClick button38, ahk_pid %PID% ; сбрасываем
sleep 1000 ; ждём секунду
; набираем "123" через координаты, не надёжно т.к. может зависеть от размеров окна и разрешения экрана
ControlClick x230 y320, ahk_pid %PID%
ControlClick x270 y320, ahk_pid %PID%
ControlClick x310 y320, ahk_pid %PID%
sleep 1000 ; ждём секунду
Process, close, %PID% ; закрываем калькулятор
return

Работает со стандартным калькулятором от Win7.

6 (изменено: creature.ws, 2011-11-05 16:46:37)

Re: АНК: Клики мышью в нужном месте при изменении размера окна

Если при помощи AU3_Spy не удаётся определить  ClassNN кнопки которую требуется нажать – придётся кликать по координатам.
Если координаты кнопок при изменении размера окна меняются – см. сообщение #3

7 (изменено: Amon-Ra, 2011-11-05 19:40:40)

Re: АНК: Клики мышью в нужном месте при изменении размера окна

Все, я разобрался что к чему.

8

Re: АНК: Клики мышью в нужном месте при изменении размера окна

А как мне с помощью ControlClick перетащить ползунок?

9

Re: АНК: Клики мышью в нужном месте при изменении размера окна

Amon-Ra пишет:

А как мне с помощью ControlClick перетащить ползунок?

Это от ползунка зависит Где-то достаточно кликнуть по нужному месту, где-то нужно кликать много раз, а некоторые вообще не реагируют на такие клики. Обычный Trackbar проще всего выставить сообщением TBM_SETPOS.