Документация · Где работает

Lang Switcher в окнах, запущенных от имени администратора

Да. Программа ставится в C:\Program Files, а установщик создаёт на вашем компьютере свой сертификат — только для подписи кода: подписывает им программу и сразу уничтожает ключ, а при удалении программы убирает и сертификат. Поэтому Windows разрешает ей работать в окнах, запущенных от имени администратора. На экранах запроса UAC, Ctrl+Alt+Del и входа в систему перехват невозможен: это ограничение Windows.

Почему работает

Права администратора — один раз, при установке: программа ставится в C:\Program Files\Lang_Switcher, а установщик создаёт на компьютере сертификат, чтобы она работала и в окнах, запущенных от имени администратора (манифест uiAccess). Сама программа запускается без прав администратора.

uiAccess — механизм самой Windows: им же пользуются экранная клавиатура, экранная лупа и экранный диктор. Программа получает разрешение действовать в окнах более высокого уровня, но не права администратора. Windows даёт его, только если файл программы подписан подписью, которой этот компьютер доверяет, и лежит в C:\Program Files.

Поэтому и запуск вместе с Windows обходится без запроса UAC: галочка «Запускать при входе в систему» ничего не просит.

Где не работает

На экранах запроса UAC, Ctrl+Alt+Del и входа в систему перехват невозможен: это ограничение Windows. Туда не пускают никакие программы, кроме самой системы.

Ещё в части игр: они читают клавиатуру в обход Windows и замену текста не принимают — такие добавляют в исключения.

Запасная версия

Установщик, запущенный с ключом /NOLOCALCERT, ставит запасную версию — тот же код без uiAccess. Она работает везде, кроме окон программ, запущенных от имени администратора: в них горячая клавиша не действует.

Запасную версию установщик ставит и сам, если полную на этом компьютере поставить не удалось. Тогда в конце установки он скажет об этом окном: «Lang Switcher установлен, но не будет работать в окнах программ, запущенных от имени администратора…» Если окно было — напишите автору: меню значка → «Написать автору…».

Вопросы и проблемыв группе Panda Koding, тема Lang Switcher: Telegram ↗ · MAX ↗