Что нового

Как сделать, чтобы AutoIt "проглатывал" хоткей?

Suppir

Продвинутый
Сообщения
967
Репутация
62
Делаю хоткей ALT+ё в скрипте:

Код:
HotKeySet("!ё", "_Menu")
HotKeySet("!", "_Menu")


Работаю с интерфейсом другой программы (AutoIt висит в трее) и нажимаю хоткей на клавиатуре.
Функция AutoIt срабатывает, однако при этом и срабатывает нажатие ALT в программе, интерфейс которой активен в данный момент.
Можно ли сделать так, чтобы если AutoIt "поймал" хоткей, то этот хоткей не срабатывал в других программах?
 

snoitaleR

AutoIT Гуру
Сообщения
854
Репутация
223
Suppir
А может дело в самой программе?
Мне не удалось добиться подобного эффекта в FIREFOX, OPERA, GOODSYNC...
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5 379
Репутация
2 711
Попробуй это, должно блокировать любые хоткеи. Если не сработает, то это особенности программы, может она использует что-то на подобии _IsPressed().
 
Автор
S

Suppir

Продвинутый
Сообщения
967
Репутация
62
Попробуйте для примера запустить этот тестовый скрипт.

Код:
HotKeySet("!ё", "_Exit")
HotKeySet("!`", "_Exit")

while 1
	Sleep (100)
	
WEnd

Func _Exit()
	Exit
EndFunc



Запустите Total Commander.
Нажмите ALT+ё

скрипт завершит работу (функция сработала), но при этом в total commander'е активизируется верхнее меню "файлы".
 

Hellbender

Новичок
Сообщения
16
Репутация
0
А так?)))

Код:
HotKeySet("!ё", "_Exit")
HotKeySet("!`", "_Exit")

while 1
    Sleep (100)
   
WEnd

Func _Exit()
	Send('{alt}')
    Exit
EndFunc



ЗЫ. А вообще, если зажать ALT+ё (выход из скрипта), затем отпустить "ё", а затем отпустить ALT, то ничего не активизируется.
 
Автор
S

Suppir

Продвинутый
Сообщения
967
Репутация
62
Hellbender, я знаю об этом методе - он описан в справке. В сожалению, он вызывает столько косяков, что лучше им не пользоваться.
 

Hellbender

Новичок
Сообщения
16
Репутация
0
Еще как вариант можно попробовать BlockInput на полсекунды после нажатия хоткейса, чтобы успеть безболезненно отпустить ALT.
 
Верх