Что нового

[Автоматизация] Автоматизация нажатий клавиатуры

pahan1789

Новичок
Сообщения
4
Репутация
0
Версия AutoIt: 3.3.8.1
Описание:
Как сделать чтобы после нажатия HotKey {F5} функция "func" выполнялась бесконечно до тех пор пока я снова не нажму {f5}?
Пожалуйста, настройте мне $Input1 и $Input2 (подробности в комментариях, в коде).
Как сделать чтобы кнопки высылались только в процесс например Game.exe?
Код:
#include <GUIConstantsEx.au3>
#include <UpDownConstants.au3>

$Form1 = GUICreate("Form1", 544, 106)

GUICtrlCreateLabel("Продолжительность (0-10 мс) паузы между нажатиями:", 8, 8)
GUICtrlCreateLabel("Сколько времени (0-100 мс) удерживать клавишу:", 37, 32)

$Input1 = GUICtrlCreateInput("5", 296, 5, 35, 21)
; тут нужно: 1) Установить пределы: от 0 до 10. 2) Разрешить ввод ТОЛЬКО $Updown1

$Input2 = GUICtrlCreateInput("50", 296, 29, 35, 21)
; тут нужно: 1) Установить пределы: от 0 до 100. 2) Разрешить ввод ТОЛЬКО $Updown2

$Updown1 = GUICtrlCreateUpdown($Input1)
$Updown2 = GUICtrlCreateUpdown($Input2)
$Label1 = GUICtrlCreateLabel("Текущее: 5", 336, 8)
$Label2 = GUICtrlCreateLabel("Текущее: 50", 336, 32)
$Button1 = GUICtrlCreateButton("Сохранить", 210, 56, 123, 41)

GUISetState(@SW_SHOW)

HotKeySet("{F5}", "_func")

While 1   
   $nMsg = GUIGetMsg()
   Switch $nMsg
	  Case $Button1
		 $Inp1 = GUICtrlRead($Input1)
		 $Inp2 = GUICtrlRead($Input2)
		 Opt("SendKeyDelay", $Inp1)
		 Opt("SendKeyDownDelay", $Inp2)
		 GUICtrlSetData($Label1, "Текущее: " & $Inp1)
		 GUICtrlSetData($Label2, "Текущее: " & $Inp2)
	  Case -3
		 Exit
   EndSwitch
WEnd

Func _func()
Send("4")
Send("5")
EndFunc

Примечания: ...
 

_ToBe_

Осваивающий
Сообщения
142
Репутация
35
По поводу кнопочки F5

Код:
#include <Misc.au3>

HotKeySet("{F5}", "_RunMyFunc")
Global $dll = DllOpen("user32.dll")

Func _RunMyFunc()
	While 1	                            ;Начало бесконечного цикла
		if _IsPressed("74", $dll) Then	;Если нажата F5
			ExitLoop	            	;Выход из цикла
		EndIf 

	;~ 		...		;Тут выполняется функция
;~ 		Sleep(300)
;~ 		......
;~ 		Sleep(300)
;~ 		...........
;~ 		Sleep(300)

	WEnd
EndFunc
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
pahan1789 [?]
Как сделать чтобы после нажатия HotKey {F5} функция "func" выполнялась бесконечно до тех пор пока я снова не нажму {f5}?
Пожалуйста, настройте мне $Input1 и $Input2 (подробности в комментариях, в коде).
Код:
#include <EditConstants.au3>

$pause = True

$Form1 = GUICreate("Form1", 544, 106)
GUICtrlCreateLabel("Продолжительность (0-10 мс) паузы между нажатиями:", 8, 8)
GUICtrlCreateLabel("Сколько времени (0-100 мс) удерживать клавишу:", 37, 32)
$Input1 = GUICtrlCreateInput("5", 296, 5, 35, 21, $ES_READONLY)
$Input2 = GUICtrlCreateInput("50", 296, 29, 35, 21, $ES_READONLY)
$Updown1 = GUICtrlCreateUpdown($Input1)
GUICtrlSetLimit(-1, 10)
$Updown2 = GUICtrlCreateUpdown($Input2)
GUICtrlSetLimit(-1, 100)
$Label1 = GUICtrlCreateLabel("Текущее: 5", 336, 8)
$Label2 = GUICtrlCreateLabel("Текущее: 50", 336, 32)
$Button1 = GUICtrlCreateButton("Сохранить", 210, 56, 123, 41)

GUISetState(@SW_SHOW)

HotKeySet("{F5}", "_func")

While 1
  $nMsg = GUIGetMsg()
  Switch $nMsg
      Case $Button1
         $Inp1 = GUICtrlRead($Input1)
         $Inp2 = GUICtrlRead($Input2)
         Opt("SendKeyDelay", $Inp1)
         Opt("SendKeyDownDelay", $Inp2)
         GUICtrlSetData($Label1, "Текущее: " & $Inp1)
         GUICtrlSetData($Label2, "Текущее: " & $Inp2)
      Case -3
         Exit
  EndSwitch
  If Not $pause Then
      Send("4")
      Send("5")
  EndIf
WEnd

Func _func()
  $pause = Not $pause
EndFunc


Как сделать чтобы кнопки высылались только в процесс например Game.exe?
Можно в конкретное окно (контрол)
Код:
ControlSend()
 
Автор
P

pahan1789

Новичок
Сообщения
4
Репутация
0
OffTopic:
Спасибо огромное, ребята! Что бы я без вас делал..)
 
Верх