Что нового

[Мышь, клавиатура] Как временно блокировать функцию?

Pirat

Новичок
Сообщения
4
Репутация
0
Т.е. программа должна постоянно мониторить некоторые клавиши, при их нажатии нажимать ещё несколько, но пока выполняется одна функция другая начинаться не должна.
Подскажите как это сделать.

Пример программы:

Код:
HotKeySet("{ESC}", "Terminate") ;выход
HotKeySet("1", "PressKey1") ;база1

While 1
    Sleep(10)
WEnd

Func Terminate()
    Exit 0
EndFunc

Func PressKey1()
    Send("{Lshift down}")
	Sleep(1)
    Send("{1 down}")
	Send("{1 up}")
	Sleep(1)
	Send("{lshift up}")
		Sleep(710)
	Send("{Lshift down}")
	Sleep(1)
    Send("{2 down}")
    Send("{2 up}")
	Sleep(1)
    Send("{lshift up}")
		Sleep(701)
	Send("{Lshift down}")
	Sleep(1)
    Send("{2 down}")
    Send("{2 up}")
	Sleep(1)
    Send("{lshift up}")
		Sleep(702)
	Send("{Lshift down}")
	Sleep(1)
    Send("{2 down}")
    Send("{2 up}")
	Sleep(1)
    Send("{lshift up}")
		Sleep(710)
	Send("{Lshift down}")
	Sleep(1)
    Send("{1 down}")
    Send("{1 up}")
	Sleep(1)
    Send("{lshift up}")
		Sleep(710)
	Send("{Lshift down}")
	Sleep(1)
    Send("{3 down}")
    Send("{3 up}")
	Sleep(1)
    Send("{lshift up}")
EndFunc

Заранее спасибо.
 

edyapd

Осваивающий
Сообщения
380
Репутация
30
Если вам во время выполнения "PressKey1" требуется запретить вызов "Terminate", то сделайте это при вызове функции.
Код:
HotKeySet("{ESC}", "Terminate") ;выход
HotKeySet("1", "PressKey1") ;база1

While 1
    Sleep(10)
WEnd

Func Terminate()
    Exit 0
EndFunc

Func PressKey1()
HotKeySet("{ESC}")
;
;Здесь код
;
HotKeySet("{ESC}", "Terminate")
EndFunc
 
Автор
P

Pirat

Новичок
Сообщения
4
Репутация
0
edyapd сказал(а):
Если вам во время выполнения "PressKey1" требуется запретить вызов "Terminate", то сделайте это при вызове функции.
Код:
HotKeySet("{ESC}", "Terminate") ;выход
HotKeySet("1", "PressKey1") ;база1

While 1
    Sleep(10)
WEnd

Func Terminate()
    Exit 0
EndFunc

Func PressKey1()
HotKeySet("{ESC}")
;
;Здесь код
;
HotKeySet("{ESC}", "Terminate")
EndFunc

Спасибо, но мне нужно что бы функция PressKey1 не запускалась ещё раз во время нажатия заданной клавиши до того как ее выполнение завершиться.


Добавлено:
Сообщение автоматически объединено:


Сделал аналогично с функцией "presskey 1" и получилось как раз то что надо, Спасибо!))
Код:
HotKeySet("F12", "Terminate") ;выход
HotKeySet("x", "PressKey1") ;стагер база

While 1
    Sleep(10)
WEnd

Func Terminate()
    Exit 0
EndFunc

Func PressKey1()
	HotKeySet("x")
    Send("{lshift down}")
	Sleep(1)
    Send("{1 down}")
	Send("{1 up}")
	Sleep(1)
	Send("{lshift up}")
		Sleep(600)
	Send("{Lshift down}")
	Sleep(1)
    Send("{2 down}")
    Send("{2 up}")
	Sleep(1)
    Send("{lshift up}")
		Sleep(650)
	Send("{Lshift down}")
	Sleep(1)
    Send("{1 down}")
    Send("{1 up}")
	Sleep(1)
    Send("{lshift up}")
		Sleep(610)
    Send("{e down}")
    Send("{e up}")
	HotKeySet("x", "PressKey1")
EndFunc
 
Верх