Меню Рубрики

Индикатор раскладки клавиатуры в виде флага в windows

Индикация языка ввода возле курсора. Озбор программ.

Каждый пользователь компьютера ежедневно сталкивается с проблемой ошибочного ввода: вы начинаете набирать некоторый текст на клавиатуре (при этом смотрите на клавиатуру, а не на экран), и уже набрав несколько слов понимаете, что набирали не в том языке ввода (эти вечные «Ghbdtn! Rfr ltkf&»). Приходится удалять плоды своих напрасных стараний, переключать язык и начинать все с чистого листа. Особенно неприятно, когда такое случается при наборе пароля. Если Вам тоже это надоело — прошу под кат.

Многие порекомендуют для борьбы с этой проблемой воспользоваться программами, которые автоматически переключают язык ввода, анализируя набираемый текст (Punto Switcher и т.п.). Однако те же многие согласятся, что такие программы несовершенны и часто непредсказуемы в своем поведении, что только повышает степень неоднозначности для пользователя и наносит больше вреда чем пользы.
Конечно, очень полезно в этом отношении было бы выработать привычку всегда смотреть на индикатор языка ввода на языковой панели прежде чем начинать набирать текст. Да вот только это довольно неудобно, особенно если приходится работать с полноэкранными приложениями, с несколькими мониторами. И вообще, часто переводить взгляд от поля ввода к индикатору как-то не комфортно. Более того, случается, что это самый индикатор по каким-то причинам может отображать недостоверную информацию либо вообще исчезать с экрана (согласитесь, случается такое). В таком случае остается только проверять язык ввода эмпирически.
Невольно напрашивается мысль о том, что традиционное средство, призванное обеспечить информированность пользователя о активном в текущий момент языке ввода и, следовательно, корректность ввода, совершенно неэффективно. Разумным решением было бы переместить злосчастный индикатор из угла экрана, куда так лень перевести взгляд, к текстовому курсору, куда взгляд пользователя направлен изначально. И увы — это самое решение разработчиками операционных систем пока не реализовано (а возможно и не будет). К счастью, существует ряд программ, которые могут помочь в той или иной степени устранить это упущение.

Aml Maple — первая же программа, которую предложит поисковик по запросу «индикатор раскладки возле курсора». Довольно неплохое решение.

Эта программа отображает название языка ввода либо флаг страны (одним словом индикатор) возле текстового курсора и/или указателя мыши. Кроме того, может изменять цвет текстового курсора в зависимости от языка ввода. Хотя на официальном сайте заявлено, что работает в любом приложении, возможность изменения текстового курсора у меня не работала в Firefox (лично для меня критично).
Еще один минус — программа платная с 40-дневным пробным периодом. Хотелось бы, что бы такая вещь, как удобная индикация языка ввода, была реализована на уровне операционной системы. А раз уж нет — то решение должно быть по крайней мере бесплатным.
Приятный момент — до версии 2.24 включительно данная программа носила бесплатный статус и при желании можно найти ее бесплатный вариант на просторах интернета.

Comfort Typing (она же Comfort Lang Switcher) — программа, заменяющая заранее определенные ключевые слова на соответствующий текст и имеющая функцию автоподсказки слов. Нам же интересен побочный функционал: данный софт так же может отображать флаг языка возле текстового курсора.

Данная программа так же платная и в плане индикации языка ничем не превосходит предыдущую. Так же стоит отметить, что у нее есть более функциональная версия — Comfort Keys.

Отображает флаг возле каретки или возле поля ввода в указанном месте. В отличии от Aml Maple, позволяет выбрать собственную картинку для любого языка ввода и более гибко указывать место расположения индикатора, что довольно удобно. Однако точно так же не работает в Firefox, а жаль. В остальном программа достойная.

Еще одна бесплатная утилита, на которую я наткнулся в интернете даже не имеет названия. Она написана руками одного из пользователей хабра, за что ему отдельное спасибо. Вот ссылка на статью с описанием.

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

Надеюсь, прочитав эту статью, вы сможете выбрать программу, которая поможет вам оптимизировать работу с компьютером.

8 комментариев:

Большое спасибо за подробный анализ проблемы!
Платить 400р. за Aml Maple как-то не хочется, думаю, что ребята раза в 2 завысили цену.
Аналогично — и для команды Comfort Software с их продуктами.
Последний из упомянутых вариантов не особенно удобен, т.к. курсор мыши и курсор ввода текста — не всегда бывают вместе на экране.
Скачал и попробую Flean.

Как по мне, последняя прога (langcursor permanent) — самое оно. Простенько, без лишних наворотов, ничего не мешает.

Спасибо огромное за статью! Я как редкостный криворук постоянно не переключаю раскладку и такая программа мне очень нужна.
Попробовала Flean — в Windows 8.1 она не работает ни в одном приложении уже, а после установки рекомендуемого компонента CoolTrayIcon так и вовсе начал глючить.
В общем я решила пользоваться Aml Maple — на мой взгляд 500р за мои нервы это не много, может даже куплю версию за 650р чтобы на всех компах было удобно 🙂

Большое человеческое СПАСИБО. Такая простая НО необходимость! )
Самый последний вариант _ ГЕНИАЛЬНО.

В дополнение к списку, есть программа Everylang, одной из функций которой является индикатор раскладки около курсора, правда функция эта входит в платную часть программы, но прекрасно работает в firefox.

Как вариант — можно НИКОГДА не смотреть на индикатор, если ВСЕГДА переключать раскладку на нужную перед набором, а для этого переназначить включение русской на левый Shift, английской — на правый. Можно использовать ту же Punto Switcher, полностью отключив в ней автоматику.

Источник

Индикатор раскладки клавиатуры цветом панели задач и заголовка окна в современных версиях Windows при помощи DWM

Индикатор раскладки клавиатуры в Windows — довольно незаметная штука. Набранные на автомате не в той раскладке буквы всегда расстраивают. По крайней мере, меня. Поэтому мне всегда хотелось иметь настолько заметный индикатор текущей раскладки клавиатуры, насколько это вообще возможно. Ну хотя бы такой, с которым не нужно бегать взглядом по экрану.

Идеальным вариантом было бы пристроить небольшой индикатор прямо рядом с курсором в поле ввода, но это оказалось сложной задачей: некоторые приложения вообще не используют системный курсор. Простым и достаточно удобным решением проблемы оказалась смена цвета панели задач и заголовка окна во всей системе. Как оказалось, это можно делать программно при помощи недокументированных возможностей Desktop Window Manager API…

Итак, мы хотим менять цвет темы Windows (цвет панели задач и заголовков окон) для того, чтобы максимально наглядно видеть текущую раскладку клавиатуры. Мы будем менять цвет темы Aero, то есть поддерживаются только версии, начиная с Vista.

Первым делом мы запускаем монитор текущей раскладки клавиатуры. Он устанавливает Windows Shell Hook (WH_SHELL) для того, чтобы отслеживать смену раскладки. Если быть точным, то отслеживается не изменение раскладки, а изменение языка ввода. К сожалению, такое решение не подходит для людей, которые используют несколько разных раскладок для одного (например, японского) языка. В обработчике мы реагируем только на событие HSHELL_LANGUAGE и посылаем нашему основному приложению информацию о новом выбранном языке простым сообщением Windows.

Маленькая техническая особенность заключается в том, что обработчик shell hook обязательно должен быть размещен в DLL, а никак не в исполняемом файле. Поэтому установка обработчика вынесена в маленькую, написанную на C++ библиотеку Hooker.

Тут есть несколько важных моментов, касающихся, во-первых, 32- и 64-битных версий Windows, а во-вторых, UAC и «режима администратора».

Дело в том, что для того, чтобы перехватывать событие смены языка и в 32- и в 64-битных приложениях в 64-битной версии Windows, необходимо отдельно установить 32- и 64-битный обработчики. Поэтому библиотечка Hooker и контролирующее ее приложение HookerWatcher собираются для обеих архитектур, и основное приложение запускает обе версии.

Отдельную проблему представляет из себя «режим администратора». Фактически, приложения, работающие от имени администратора, полностью отделены от приложений без повышенных привилегий. Поэтому для того, чтобы подсветка текущего языка ввода работала и в этой изолированной среде, в режиме администратора shell hooks для обеих архитектур нужно устанавливать еще раз. Этим я заниматься уже не стал: при необходимости можно просто запустить второй экземпляр всего приложения «от имени администратора», и все будет работать как следует.

Для того, чтобы управлять цветом темы Windows мы будем использовать появившееся в Vista API Desktop Window Manager. Именно эта библиотека управляет отображением окон в последних версиях Windows.

  • DwmIsCompositionEnabled – проверяем, что DWM работает;
  • DwmGetColorizationParameters – получаем текущие цвета темы Windows;
  • DwmSetColorizationParameters – устанавливаем текущие цвета темы Windows.

Настройка цвета определяется структурой WDM_COLORIZATION_PARAMS, не описанной в документации DWM и найденной в немецком разделе форума MSDN. Для простоты в настройках приложения мы предлагаем пользователю самостоятельно изменить цвета темы Windows и указать, что текущий цвет нужно использовать для одного основного языка, либо для всех остальных. То есть, в настройках приложения мы храним только два экземпляра структуры WDM_COLORIZATION_PARAMS – для «основного» языка и для всех остальных.

Основное приложение использует Windows Forms, состоит из одной формы с перегруженным методом WndProc, в котором и обрабатываются сообщения, полученные от монитора текущего языка. Получив уведомление о смене языка, приложение устанавливает цвет темы Windows методом DwmSetColorizationParameters.

Кстати, в Windows 7 можно было наблюдать довольно забавное поведение индикатора текущего языка в быстром поиске в меню «Пуск»: после ввода символа в русской раскладке язык на мгновение переключался на английский и обратно. И, соответственно, при вводе очередной буквы мигал индикатор. А встроенный индикатор раскладки реагировал с заметной задержкой, и у него такой проблемы с морганием не было. В Windows 8 встроенный индикатор работает уже мгновенно.

С исходниками можно познакомиться на GitHub здесь, а релизную версию скачать тут.

Источник

Индикатор раскладки клавиатуры в виде флага в windows

Сообщения: 2912
Благодарности: 953

Конфигурация компьютера
Материнская плата: Epox MF 570 Sli
HDD: 1X320 1×500 sata Hitachi, 1×120 Ide IBM
Звук: Integrated 8ch Realtek HD (ALC 883)
CD/DVD: NEC DVD RW ND3540A
ОС: WinXp 32bit SR2 RUS

Сообщения: 6885
Благодарности: 2110

Конфигурация компьютера
Материнская плата: Gigabyte GA-Z77-D3H
HDD: Samsung SSD 850 120GB + KFA2 GAMER L TA1D0480A + Seagate ST2000DM001-9YN164
Звук: VIA VT2020/VT2021 @ Intel Panther Point PCH
CD/DVD: LG GSA-H30N SATA
ОС: Windows 10 Enterprise x64 v1909

Системную РУС\ENG можно скрыть в настройках.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

  • Индикатор загрузки процессора и памяти для windows xp
  • Индивидуальное оформление в windows mobile 10 позволяет
  • Индексатор службы microsoft windows search отключить windows 10
  • Индексатор службы microsoft windows search отключить win 10
  • Индексатор службы microsoft windows search можно ли отключить