2017-02-05 4 views
0

Я пытаюсь создать программу, которая воспроизводит непрерывный звуковой сигнал в течение 3 секунд без нажатия клавиши. Звуковой сигнал продолжается до тех пор, пока не будет нажата другая клавиша, которая возобновит отсчет 3 секунд.Работа с клавиатурой во время ввода. Autohotkey

Я хочу, чтобы программа работала в фоновом режиме во время ввода. Однако, хотя сценарий запущен, другие программы (например, Microsoft Word) не реагируют на нажатия клавиш. Я попытался установить BlockInput в Off, но это не решило проблему. Любые идеи по подключению клавиатуры к другим программам? Благодаря!

loop 
{ 
Transform, CtrlQ, Chr, 17 
Input, KeyPress, L1 M T3 
if KeyPress = %CtrlQ% 
    ExitApp 
if (ErrorLevel = "Timeout") 
{ 
Run, Beep.mp3, Hide 
Input, Cont, L1 
if (ErrorLevel = "Max") 
{ 
    WinClose, Beep.mp3 - SMPlayer 
} 
} 
} 

ответ

1

другие программы (например, Microsoft Word) не реагируют на нажатия клавиш

Это потому, что ваши входы блокировать их. Добавьте V вариант (который обозначает видимый), как

Input, KeyPress, L1 M T3 V 

Это похоже на ~ для Hotkeys

0
loop { 
    if(A_TimeIdle >= 3000) { 
     sleep 100 
     IfWinNotExist, Beep.mp3 - SMPlayer 
     { 
      Run, Beep.mp3, Hide 
     } 
    } else { 
     IfWinExist, Beep.mp3 - SMPlayer 
     { 
      WinClose, Beep.mp3 - SMPlayer 
     } 
    } 
} 

^q:: 
    ExitApp 
return 

A_TimeIdle может быть правильная функция в этом случае.