Что нового

Как отменить действие BlockInput комбинацией клавиш

Pat4005

Новичок
Сообщения
85
Репутация
4
Делал две горячие клавиши:
Код:
HotKeySet("+!^{INS}", "_Block")
и
Код:
HotKeySet("+!^{HOME}", "_UnBlock")
. Первая функция срабатывает по нажатию, а вот вторая не может т.к. BlockInput(1) все еще работает. Решил обойти проблему таким образом
Код:
Global $unblock
HotKeySet("+!^{INS}", "_Block")
$unblock = HotKeySet("+!^{HOME}", "_UnBlock")
While 1
	Sleep(100)
WEnd

Func _Block()
	While 2
	BlockInput(1) ;;
	sleep(5000)   ;;; Каждые 5 сек блок должен отключаться на 3 сек для возможности нажатия комбинации +!^HOME
	BlockInput(0) ;;
	Sleep(3000)
	If $unblock = 1 then ExitLoop
	Wend
EndFunc

Func _UnBlock()
	BlockInput(0)
EndFunc

Но это ведь не решение. Смысл всего этого состоит в том, чтобы ограничить доступ всяких личностей(хотя бы тех кто не в курсе о CTRL+ALT+DEL) к ПК(который должен постоянно работать), а при появлении меня ЭВМ должна становиться ласковой и послушной.
Есть несколько вопросов которые давно меня мучают:
1. Почему Send("!^s") или Send("!^{s}") с любой буквой внутри не работают в качестве комбинации а просто вводятся в активное окно?
2. Если я вызвал Exitloop в одном цикле то не прекратит ли он остальные присутствующие в скрипте?
3. И все-таки если работа сценария была прервана нажатием CTRL+ALT+DELETE, возможно ли снова возобновить работу(в данном случае BlockInput(1)) после выхода из открывшегося меню Семерки).
4.Я слышал что, если скрипт запускается в WinXP, то возможно просто заблокировать Диспетчер Задач через реестр и получится так, что действие Моего сценария отменить НЕ получится, никак. Вопрос: а не решит ли тамошний Антивирь, что я его враг(т.к.) записываю всякие непристойности в реестр компьютера.
Спасибо за помощь!
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Re: Как отменить действие InputBlock комбинацией клавиш

Pat4005,
Не слишком ли много вопросов в одной теме?
Предупреждение За нарушение общих правил (пункт В.4):
Не лепите несколько вопросов разной тематики в один пост. По типу "Ребят, а ещё такой вопрос...". Каждый вопрос в свою тему.


С уважением, ваш Модератор.
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,673
Репутация
2,486
Re: Как отменить действие InputBlock комбинацией клавиш

Код:
#include <BlockInputEx.au3>

HotKeySet("{ESC}", "_Quit")
HotKeySet("+!^{INS}", "_Block")
HotKeySet("+!^{HOME}", "_UnBlock")

While 1
    Sleep(100)
WEnd

Func _Block()
	_BlockInputEx(1, "{ESC}|{Ctrl}|{Alt}|{Shift}|{HOME}")
EndFunc

Func _UnBlock()
	_BlockInputEx(0)
EndFunc

Func _Quit()
	Exit
EndFunc


BlockInputEx.au3

Остальные вопросы в отдельные темы (а лучше сначала в поиск).
 
Верх