Что нового

Звук при смена раскладки

Maximill

Новичок
Сообщения
8
Репутация
0
Приветствую!
Описание: Скрипт, проигрывающий звук при смене раскладки, например RU ->EN.
Примечания:
Звук при переключении на RU и ENG раскладок должны быть разный, но постоянными (чтобы на слух понимать, какая раскладка сейчас активна). Можно использовать стандартные звуки Windows.

Задача простейшая, но моих познаний в программировании AutoIT не хватает, тем более выбрать подходящую для этой задачи функции. Прошу помочь советом, а с кодом я уже как-нибудь разберусь.
 

xXx

╚{■_■}╗
Меценат
Сообщения
245
Репутация
94
Код:
#include <WinAPISys.au3>

Global $iUB, $aMedia, $aLayoutList, $iLayout, $iLayoutPrev
Global $aMedia[2] = [@WindowsDir & '\media\Speech Off.wav', _ ; Массив звуков
        @WindowsDir & '\media\Speech On.wav']

$aLayoutList = _WinAPI_GetKeyboardLayoutList()
If @error Then Exit 1
$iUB = UBound($aMedia)

Global $aLayoutMedia[$aLayoutList[0] + 1][2]
$aLayoutMedia[0][0] = $aLayoutList[0]
For $i = 1 To $aLayoutList[0]
    $aLayoutMedia[$i][0] = $aLayoutList[$i]
    If $i <= $iUB Then $aLayoutMedia[$i][1] = $aMedia[$i - 1]
Next
$iLayoutPrev = _WinAPI_GetKeyboardLayout(WinGetHandle(''))

While Sleep(500)
    $iLayout = _WinAPI_GetKeyboardLayout(WinGetHandle(''))
    If $iLayout And $iLayout <> $iLayoutPrev Then
        For $i = 1 To $aLayoutMedia[0][0]
            If $iLayout = $aLayoutMedia[$i][0] Then
                SoundPlay($aLayoutMedia[$i][1])
                ExitLoop
            EndIf
        Next
        $iLayoutPrev = $iLayout
    EndIf
WEnd
 
Автор
M

Maximill

Новичок
Сообщения
8
Репутация
0
xXx, Спасибо! Все круто)
Сообщение автоматически объединено:

Не сочтите за наглость, но меня есть еще одна просьба (или создать новую тему?), можно как-то в этот код добавить возможность, чтобы на RU и EN раскладке NUMPAD всегда была точка (которая справа от "0").
Это бы очень облегчило работу на клавиатуре. Запустил один скрипт, есть звуки при переключении раскладки, и точка постоянная.
На форуме нашел одну тему
 
Последнее редактирование:
Верх