Что нового

Выполнение скрипта при зажатой ПКМ

Arikurinkuto

Новичок
Сообщения
14
Репутация
2
Версия AutoIt3: 3.

Описание: Выполнение скрипта при зажатой ПКМ

Примечания: Помогите дописать скрипт... необходимо чтобы он выполнял функцию только при зажатой ПКМ

Код:
HotKeySet ("{F1}","_Pause" ) 
HotKeySet ("{F2}","_NotPause") 
HotKeySet("{F7}", "_Exit") 
Global $Paused 
Func _Pause() 
$Paused = True 
While $Paused 
Sleep(100) 
WEnd 
EndFunc 
Func _NotPause() 
$Paused = False 
EndFunc 
While 1
$Variable = PixelSearch(672,364,693,385,0xFF0000,40)
If IsArray($Variable) = True Then 
MouseClick("LEFT") 
EndIf
WEnd 
Func _Exit() 
Exit 
EndFunc
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
Arikurinkuto [?]
необходимо чтобы он выполнял функцию только при зажатой ПКМ
Попробуйте так.
MouseOnEvent.au3 взять здесь: http://autoit-script.ru/index.php/topic,198.0.html и положить в папку со скриптом.
Код:
#include "MouseOnEvent.au3"

HotKeySet("{F1}", "_Pause" )
HotKeySet("{F2}", "_NotPause")
HotKeySet("{F7}", "_Exit")

_MouseSetOnEvent($MOUSE_SECONDARYDOWN_EVENT, "_NotPause", 0, 1)
_MouseSetOnEvent($MOUSE_SECONDARYUP_EVENT, "_Pause", 0, 1)

Global $Paused = True
_Pause()

While 1
  If Not $Paused Then
    $Variable = PixelSearch(672,364,693,385,0xFF0000,40)
    If IsArray($Variable) = True Then
      MouseClick("LEFT")
    EndIf
  EndIf
WEnd

Func _Pause()
  $Paused = True
EndFunc

Func _NotPause()
  $Paused = False
EndFunc

Func _Exit()
  Exit
EndFunc
 
Автор
A

Arikurinkuto

Новичок
Сообщения
14
Репутация
2
Не работает... все разом зависает и мышь просто начинает тормозить.

Есть команда проверяет нажатие клавиш. но я не знаю как ее приспособить к скрипту.

Код:
#include <Misc.au3>
_IsPressed($sHexKey [, $vDLL = 'user32.dll'])


А может быть можно все это еще проще сделать
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
Arikurinkuto [?]
Не работает... все разом зависает и мышь просто начинает тормозить.
Я на обычных окнах проверял - работает нормально. Но, видимо, для игры нужно как-то по другому делать :(
А функция _IsPressed() определяет только нажатие, но не отжатие.
 
Автор
A

Arikurinkuto

Новичок
Сообщения
14
Репутация
2
Может это можно всетаки както сделать одним скриптом... на клавиши мыши распостраняются команды UP и DOWN ? или может быть можно добавить еще одно условие которое отслеживает кнопку мышки и если она TRUE то врубается вторая функция на поиск цвета. если FALSE то сидит и ждет TRUE
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
За дублирование тем в разных разделах и игнорирование предупреждений , в моем разделе больше не появляйся
 
Автор
A

Arikurinkuto

Новичок
Сообщения
14
Репутация
2
В итоге все сделал сам и все работает как надо.. вот итог.

Код:
#include <WinAPIEx.au3>
#include <Misc.au3>

If WinExists(@ScriptName) Then Exit
AutoItWinSetTitle(@ScriptName)
Global $Paused, $counter = 0, $amount = 6
HotKeySet("{F3}", "TogglePause")
HotKeySet("{F2}", "Terminate")
Shoot()
Func Shoot()
While 1
If _WinAPI_GetAsyncKeyState(0x02) = True Then
Local $coord = PixelSearch(672,364,693,385,0xBB1518,20)
If Not @error Then
MouseClick("Left")
MouseMove(MouseGetPos(0),MouseGetPos(1)+$amount,0)
Sleep(20)
EndIf
EndIf
WEnd
EndFunc
While 1
$counter +=1
WEnd
Func TogglePause()
$Paused = NOT $Paused
While $Paused
sleep(100)
;ToolTip('Script is "Paused"',0,0, $counter, 1)
WEnd
ToolTip("")
EndFunc
Func Terminate()
Exit 0
EndFunc
 
Верх