Что нового

[Мышь, клавиатура] Нужен макрос по нажатию 2-ух кнопок мыши

Serafima

Новичок
Сообщения
2
Репутация
0
Версия AutoIt: 3.3.12.0

Описание:
Нужен макрос для нажатия 2-ух кнопок мыши(правая, левая) поочередно. Конкретнее: желательно что бы хот кей была "R".

Примечания:

Собственно это нужно для одной игрушки. Посему надо, что бы при нажатии "R" выполнялось это действие единожды, но при каждом нажатии повторялось N-ое кол-во раз и в окне игры.

Заранее спасибо за потраченное время.
 

alex33

Скриптер
Сообщения
1,457
Репутация
186
Код:
Func _click()
	MouseClick("right")
	MouseClick("left")
EndFunc   ;==>_click
DllCall('user32.dll', 'uint_ptr', 'LoadKeyboardLayoutW', 'wstr', '00000409', 'uint', '0x00000101')
HotKeySet("r", "_click")

While 1
	Sleep(100)
WEnd
 

Dima1337

Осваивающий
Сообщения
186
Репутация
24
Еще так можно...

Код:
#Include <WinAPIEx.au3>

#RequireAdmin ;Запуск от имени администратора

$sPocesName = 'notepad.exe' ;Процесс игры

Global $sTitl = _WinGetForProc($sPocesName), $hWnd1 = WinGetHandle($sTitl)

HotKeySet("{R}","Click")

While 1
   Sleep(100)
WEnd

Func _WinGetForProc ($sPrName)
   $alist = ProcessList($sPrName)
   For $i = 1 to $alist[0][0]
	  $iProcPid = $alist[$i][1]
   Next
   $aData = _WinAPI_EnumProcessWindows($iProcPid, 1)
   $iWin = $aData [1][0]
   $sTitle = WinGetTitle( $iWin )
   Return $sTitle
EndFunc

Func Click()
   ControlClick($hWnd1,"","",'Right') ;Клик в окно игры, в центр экрана.
   Sleep(1000) ;Задержка между кликами 1 секунда
   ControlClick($hWnd1,"","",'Left')
EndFunc
 
Автор
S

Serafima

Новичок
Сообщения
2
Репутация
0
Что-то не работает. А есть вариант, что бы макрос распространялся на все окна? И можно ли вкл\откл макрос? На insert(on) и home(off)?

Может на клавиатуру попробовать. Вместо левой\правой мыши буквы "T" и "G".
 

Dima1337

Осваивающий
Сообщения
186
Репутация
24
Что-то не работает.
-Что именно не работает? Игра не реагирует?

Что бы макрос распространялся на все окна? И можно ли вкл\откл макрос? На insert(on) и home(off)?
Код:
#RequireAdmin ;Запуск от имени администратора

HotKeySet("{R}","_Click")
HotKeySet("{HOME}","_Pause")
HotKeySet("{INS}","_Start")

$Pause = False ; Включено по умолчанию

While 1
   Sleep(100)
WEnd

Func _Click()
   If $Pause = False Then
   ControlClick("","","",'Right') ;Клик в активное окно, в центр экрана.
   Sleep(1000) ;Задержка между кликами 1 секунда
   ControlClick("","","",'Left')
   EndIf
EndFunc

Func _Pause()
   $Pause = True
EndFunc

Func _Start()
   $Pause = False
EndFunc


Может на клавиатуру попробовать. Вместо левой\правой мыши буквы "T" и "G".
Код:
#RequireAdmin ;Запуск от имени администратора

HotKeySet("{R}","_Click")
HotKeySet("{HOME}","_Pause")
HotKeySet("{INS}","_Start")

$Pause = False ; Включено по умолчанию

While 1
   Sleep(100)
WEnd

Func _Click()
   If $Pause = False Then
   Send("{G}")
   Sleep(1000) ;Задержка 1 секунда
   Send("{T}")
   EndIf
EndFunc

Func _Pause()
   $Pause = True
EndFunc

Func _Start()
   $Pause = False
EndFunc
Если не подойдет попробуйте так:
Код:
#RequireAdmin ;Запуск от имени администратора

HotKeySet("{R}","_Click")
HotKeySet("{HOME}","_Pause")
HotKeySet("{INS}","_Start")

$Pause = False ; Включено по умолчанию

While 1
   Sleep(100)
WEnd

Func _Click()
   If $Pause = False Then
   ControlSend("","","","{G}") ;Отправка в активное окно
   Sleep(1000) ;Задержка 1 секунда
   ControlSend("","","","{T}")
   EndIf
EndFunc

Func _Pause()
   $Pause = True
EndFunc

Func _Start()
   $Pause = False
EndFunc
 
Верх