Привет!
AutoIt по умолчанию перехватывает все хоткеи, идущие с клавиатуры. Если вы хотите сделать так, чтобы хоткеи работали только когда активно ваше приложение, можно воспользоваться GUISetAccelerators. Но я предлагаю другое, более простое решение:
В этом примере если приложение активно, то работает хоткей "q" (выскакивает надпись в трее). А если приложение не активно, то хоткеи перестают перехватываться AutoIt'ом - а значит, другие программы работают без проблем!
Смысл идеи:
с помощью функции AdlibRegister через определенные промежутки времени проверяем активно ли приложение. Если оно активно, то устанавливаем хоткеи. А если приложение не активно, то снимаем хоткеи. Проверено - работает
AutoIt по умолчанию перехватывает все хоткеи, идущие с клавиатуры. Если вы хотите сделать так, чтобы хоткеи работали только когда активно ваше приложение, можно воспользоваться GUISetAccelerators. Но я предлагаю другое, более простое решение:
Код:
GUICreate("Пример")
GUISetState()
AdlibRegister("_isActive")
while 1
Sleep(100)
WEnd
Func _isActive()
If WinActive("Пример") Then
HotKeySet("q", "_SayHello")
Else
HotKeySet("q")
EndIf
EndFunc
Func _SayHello()
TrayTip("", "Hello world!", 1)
sleep (1000)
TrayTip("", "", 0)
EndFunc
В этом примере если приложение активно, то работает хоткей "q" (выскакивает надпись в трее). А если приложение не активно, то хоткеи перестают перехватываться AutoIt'ом - а значит, другие программы работают без проблем!
Смысл идеи:
с помощью функции AdlibRegister через определенные промежутки времени проверяем активно ли приложение. Если оно активно, то устанавливаем хоткеи. А если приложение не активно, то снимаем хоткеи. Проверено - работает