1 (изменено: Dizzy221, 2011-12-04 16:00:18)

Тема: AHK: нажатая кнопка мыши

Здравствуйте!
Помогите, пожалуйста, составить следующий скрипт:
Нажимается кнопка мыши (левая) и держится нажатой в течении 15 сек, затем на 40 сек отжимается и по-новой.

Пишу на PHP+MySQL за еду
----
ICQ: 424812203

2 (изменено: Grey, 2011-12-07 14:24:05)

Re: AHK: нажатая кнопка мыши

~LButton::
   While GetKeyState("LButton", "P")
   {
      Click, D
      Sleep, 75
      If !GetKeyState("LButton", "P")
         Break
      Sleep, 14925
      Click, U
      Sleep, 40000
   }
   Return

3

Re: AHK: нажатая кнопка мыши

А почему этот код не работает в приложении?

Пишу на PHP+MySQL за еду
----
ICQ: 424812203

4

Re: AHK: нажатая кнопка мыши

#IfWinActive.

5

Re: AHK: нажатая кнопка мыши

Grey спс, кстати раньше код работал, потом ты что то отредактировал и теперь нет

Пишу на PHP+MySQL за еду
----
ICQ: 424812203

6 (изменено: Grey, 2011-12-08 23:19:13)

Re: AHK: нажатая кнопка мыши

Собственно я добавил проверку после нажатия, на предмет завершения потока в случае, если клавиша будет нажата без удержания, и сделал хоткей прозрачным (~), чтобы опять-таки избежать блокирования. Не лишним будет ещё сюда добавить проверку после генерируемого отжатия:

~LButton::
   While GetKeyState("LButton", "P")
   {
      Click, D
      Sleep, 75
      If !GetKeyState("LButton", "P")
         Break
      Sleep, 14925
      Click, U
      Sleep, GetKeyState("LButton", "P") ? 40000:-1
   }
   Return

В общем вот такая конструкция:

LButton:: ; время сознательно уменьшено
   ToolTip, Start tread, A_ScreenWidth/2, A_ScreenHeight/2-25
   While GetKeyState("LButton", "P")
   {
      ToolTip, Down, A_ScreenWidth/2, A_ScreenHeight/2, 2
      Sleep, 250
      ToolTip,,,, 3
      If !GetKeyState("LButton", "P")
         Break
      Sleep, 1500
      ToolTip, Up, A_ScreenWidth/2, A_ScreenHeight/2+25, 3
      Sleep, 250
      ToolTip,,,, 2
      Sleep, GetKeyState("LButton", "P") ? 4000:-1
   }
   ToolTip, Complete tread, A_ScreenWidth/2, A_ScreenHeight/2+50, 4
   Sleep, 250
   Loop, 4
      ToolTip,,,, A_Index
   Return

7

Re: AHK: нажатая кнопка мыши

Grey не работает почему то? Можно убрать проверки эти? Без них было всё ок

Пишу на PHP+MySQL за еду
----
ICQ: 424812203

8

Re: AHK: нажатая кнопка мыши

Не вопрос :

~LButton::
   While GetKeyState("LButton", "P")
   {
      Click, D
      Sleep, 15000
      Click, U
      Sleep, 40000
   }
   Return

9

Re: AHK: нажатая кнопка мыши

Grey пишет:

Не вопрос :

~LButton::
   While GetKeyState("LButton", "P")
   {
      Click, D
      Sleep, 15000
      Click, U
      Sleep, 40000
   }
   Return

Спасибо. Пока что лучший ответ что я нашел по этому вопросу. Пробуя тоже самое через "SentPlay, {LButton down}" и "SentPlay, {LButton up}" я получал лишь одиночные нажатия, а не удержания клавиш нужное время. Но для, например, Counter Strike 1.6, при отпускании кнопки мыши происходить еще одно нажатие/отпускание в конце конструкции. И она иногда плохо работает при других активных кнопках. Можешь посоветовать, чем можно дополнить код, для уменьшения конфликтов между конструкцией "макроса" и моими нажатиями на другие клавиши?