netch80: (Default)
[personal profile] netch80
Тема известная (просто нагуглив можно получить и монстров типа Punto, и лёгкий keyla, и простой как угол дома lswitch), но захотелось получить вариант как у меня на Unix - Caps переключает между английским и русским, а Ctrl+Caps - между русским и украинским.

Пока идеально не получилось: [UPD] на FAR какие-то странные эффекты. Впрочем, и там можно через родной переключатель (как Ctrl+Shift) выбрать любую.

Текущие результаты (исходник и экзешник). Исходник - слегка замученный lswitch.c от Haali. Caps крутит раскладки по кругу вперёд, Ctrl+Caps - назад. Командная строка с 'q' убирает резидент, с '3s' запускает в моём любимом режиме, в любом другом случае пытается ставить с переключением по кругу.

Уже удобнее, чем в Putty, и Caps тоже можно включать (имитируя блондинку;))

Date: 2009-05-09 01:58 pm (UTC)
From: [identity profile] dmih.livejournal.com
Я пол года назад для одного человека пытался за 30 минут такое слепить.

Сначала получилось так:
ActivateKeyboardLayout ((IntPtr)1, 0);
это нормально, но не работало в службе терминалов.

Потом сделал по простому:
keybd_event (20, 0x45, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, (UIntPtr)0);
keybd_event (20, 0x45, KEYEVENTF_EXTENDEDKEY, (UIntPtr)0);
keybd_event (20, 0x45, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, (UIntPtr)0);

keybd_event (0xA4, 0x45, KEYEVENTF_EXTENDEDKEY, (UIntPtr)0);
keybd_event (0xA0, 0x45, KEYEVENTF_EXTENDEDKEY, (UIntPtr)0);
keybd_event (0xA4, 0x45, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, (UIntPtr)0);
keybd_event (0xA0, 0x45, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, (UIntPtr)0);

Тонкостей не помню, но идея понятна :) (это для Alt-Shift).

Ну и надо расшифровать это из .NET PInvoke до одноименных функций Win32.

Ну а потом да, тот человек нашел себе указанный выше вами файл, собрал, и пользуется :)

Profile

netch80: (Default)
netch80

January 2026

S M T W T F S
    1 23
45678910
11121314151617
18192021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 4th, 2026 06:11 am
Powered by Dreamwidth Studios