Что нового

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

Suppir

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

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


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

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

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

Belfigor

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

Suppir

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

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

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8 473
Репутация
2 403
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 473
Репутация
2 403
Автор
S

Suppir

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

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5 379
Репутация
2 712
Автор
S

Suppir

Продвинутый
Сообщения
967
Репутация
62
да, я уже понял :smile:
 
Верх