Что нового

Как сделать так, чтобы хоткеи действовали только во время выполнения функции?

Suppir

Продвинутый
Сообщения
967
Репутация
62
Скрипт на AutoIt висит в трее. При нажатии F12 активируется функции Wrapper(). А во время действия этой функции должны работать хоткеи "^a", "!q" и другие.

Можно ли сделать так, чтобы хоткеи "^a" и "!q" срабатывали только во время работы функции Wrapper() ? А в остальное время они не должны никаким образом перехватываться AutoIt'ом.


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

Первое, что приходит в голову - функцию Wrapper вынести в отдельный скрипт, который будет с хоткеями "^a" и "!q". Когда функция отработала свое - закрывать этот второй скрипт (соответственно, хоткеи перестанут работать).

Но можно ли сделать это в рамках одного скрипта?
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,601
Репутация
941
Мб просто переназначать хоткеи? Тоесть когда функция рабоотает, она назначает хоткеи на нужные кнопки, когда функция отработала, она назначает хоткеям их обычные функции?
 
Автор
S

Suppir

Продвинутый
Сообщения
967
Репутация
62
Belfigor, немножко не то...

Скрипт висит в трее и я хочу, чтобы он не перехватывал чужие хоткеи. При нажатии {F12} он должен "активироваться" и включить остальные свои хоткеи, которые нужны для ввода информации. Потом, когда функция отработала, необходимо удалить все хоткеи кроме {F12}, чтобы они не мешали работать другим программам. Т.е. по сути скрипт должен иметь только один "внешний" хоткей {F12}, который распознается всегда, и более десятка внутренних хоткеев, которые будут действовать временно.
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,665
Репутация
2,463
Suppir [?]
Можно ли сделать так, чтобы хоткеи "^a" и "!q" срабатывали только во время работы функции Wrapper() ? А в остальное время они не должны никаким образом перехватываться AutoIt'ом.
Так а в чём проблема, нужно хоткей назначать только при входе в функцию, а при выходе удалять его:

Код:
Func Wrapper()
	HotKeySet("^a", "Ctrl_A")
	HotKeySet("!q", "ALT_Q")
	
	...
	
	HotKeySet("^a")
	HotKeySet("!q")
EndFunc
 
Автор
S

Suppir

Продвинутый
Сообщения
967
Репутация
62
Интересно, а я и не знал, что так можно удалять хоткеи! Спасибо


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

Кажется, в описании ничего не сказано про удаление хоткеев.
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,665
Репутация
2,463
Автор
S

Suppir

Продвинутый
Сообщения
967
Репутация
62
Да, согласен. Я искал слово "delete" по контексту :smile:
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,716
Верх