1

Тема: AHK:Скрипт активации кнопки голосом и проблема с SHIFT & CTRL

Доброго времени суток! Нашел на просторах интернета скрипт активации голосового чата. Скрипт работает довольно таки хорошо, но есть одна неприятная проблема, при  работе данного скрипта у меня как - то неадекватно ведут себя клавиши SHIFT и CTRL, т.е. я не могу при зажатом SHIFT писать с большой буквы, нужно его несколько раз нажимать, чтобы написать большую букву, либо символы с верхнего цифрового блока. Такая же проблема и с CTRL, не работают комбинации клавиш типа CTRL+C, CTRl+Z, CTRL+V, я например жму комбинацию CTRL+C, чтобы скопировать текст, а мне его просто заменяет на символ "C", т.к. кнопка CTRL не сработала. Компиляция скрипта в .exe проблему не решила. Помогите решить данную проблему. И возможно ли будет сделать так, чтобы данный скрипт нажимал кнопку только в приложении Discord?
AHK v1.1.32.00

#SingleInstance, Force

device := VA_GetDevice("capture")
VA_IMMDevice_Activate(device, IID_IAudioClient:="{1CB9AD4C-DBFA-4c32-B178-C2F568A703B2}", 7, 0, audioClient)
VA_IAudioClient_GetMixFormat(audioClient, format)
VA_IAudioClient_Initialize(audioClient, 0, 0, 0, 0, format, 0)

audioMeter := VA_GetAudioMeter(device)
MeterLength = 30
VA_GetDevicePeriod("capture", devicePeriod)

Loop
{
    VA_IAudioMeterInformation_GetPeakValue(audioMeter, peakValue)
    if peakValue < 0.011
        Send, {F8 Up}
    if peakValue > 0.035
        Send, {F8 Down}
    Sleep, %devicePeriod%
}

2

Re: AHK:Скрипт активации кнопки голосом и проблема с SHIFT & CTRL

1) Прочитайте про опции команды Send.
2) WinWaitActive или ControlSend.

3

Re: AHK:Скрипт активации кнопки голосом и проблема с SHIFT & CTRL

Заменил это

{
    VA_IAudioMeterInformation_GetPeakValue(audioMeter, peakValue)
    if peakValue < 0.011
        Send, {F8 Up}
    if peakValue > 0.035
        Send, {F8 Down}
    Sleep, %devicePeriod%
}

на это

{
    VA_IAudioMeterInformation_GetPeakValue(audioMeter, peakValue)
    if peakValue < 0.011
        ControlSend,, {F8 Up}
    if peakValue > 0.035
       ControlSend,, {F8 Down}
    Sleep, %devicePeriod%
}

скрипт запускается, но не работает.