Авто переключение раскладки клавиатуры: Автоматическое переключение раскладки клавиатуры: выбираем лучшую утилиту!

Mahou — волшебный переключатель раскладок / Хабр

BladeMight

Время на прочтение 3 мин

Количество просмотров 45K

Open source *C# *Разработка под Windows *

Из песочницы

Как я создал первую функцию

Все началось с того что я захотел программировать на C# (до создания этой программы у меня было почти что никаких знаний о C#), и была одна программа которая не работала так как я хотел (Punto Switcher) долго-долго я искал к ней альтернативы и ненадолго остановился на dotSwitcher нравилась она мне… Но через некоторое время я решил что ей не хватает функционала и решил посмотреть исходный код, кое-где кое-как я разобрался как все работает, но больше всего не понимал одну вещь — WinAPI, и начал я искать информацию по функциям используемых в dotSwitcher и понемногу я начинал запоминать и понимать смысл всего этого волшебства (так мне тогда казалось).

Писать в уже созданный dotSwitcher мне не хотелось т.к. там совсем другой стиль кодинга, да и к тому же я не понимал бы зачем та или иная функция или переменная, так что я решил создать все с нуля! Для начала я разобрался с HOOK’ами, потом с функцией PostMessage с помощью которой я смог менять раскладку, благодаря чему уже у меня появились идеи по поводу того как можно будет конвертировать набранный текст. я создал список клавиш в который попадали все глобально нажатые клавиши (благодаря клавиатурному HOOK’у) приделал очистку списка клавиш по кликам мыши (благодаря мышиному HOOK’у) и создал горячую клавишу по которой менялась раскладка, но оставался вопрос «Как сделать чтобы программа вводила эти клавиши?», тогда то я и узнал о функциях SendInput и keybd_event которые делали именно это. После я переделал функцию горячей клавиши на:


  1. Сменить раскладку.
  2. Послать BackSpace [количество пойманных клавиш] раз.
  3. Ввести [пойманные клавиши].

И она работала!!! Так как я и хотел.

К каждой функции нужен свой способ осуществления, здесь я описал как я создал первую функцию смены раскладки последнего набранного текста.

Касательно названия я назвал программу (на японском, т.к. он мне очень нравится) — 魔法(Mahou) что на Японском значит «Волшебство»,»Магия» — C#, WinAPI и мой мозг (придумывающий способы осуществления функций) — это и есть та волшебство что сокрыто в названии.

Вот так выглядело первое окно Mahou:


Вот так выглядит главное окно теперь:


Работает даже на Windows XP SP3!



Описание

Программа написана на .Net 4.5, а для ее работы нужен .Net 4.0 и выше. Еще она использует WinAPI для работы всех HOOK’ов и других функций. Для сборки нужен всего лишь .Net, то есть Вы можете сами собрать сборку из исходников запустив buildMahou.cmd. Проект Open Source так что любой может изменять и создавать на его основе свои сборки согласно лицензии GPL v2. Подробное описание в репозиторие, описание функций на Wiki. Скачать можно здесь. Еще Mahou есть в Chocolatey, и для установки достаточно набрать команду cinst Mahou -y.


Возможности:


  • Переписать набранный вами текст на другой раскладке.
  • Переписать выделенный текст на другой раскладке.
  • Инвертирование раскладки выделенного текста.
  • Смена раскладки по Caps Lock, L/R Ctrl.
  • Возможность переключать текст по всем или только по выбранным раскладкам.
  • Подсказка текущей раскладки возле курсора мыши + настройки внешнего вида подсказки.
  • Подсказка текущей раскладки возле текстового курсора(каретки) + настройки внешнего вида подсказки для каждой раскладки.
  • Авто-обновление.
  • Двойные горячие клавиши(2xShift…)
  • Портативная, не требует установки.
  • Сниппеты, автозамена маленьких слов на предложения.
  • Отображения флагов стран в трее.

Помощь:

Если вам нравится программа, и/или Вы хотите меня поддержать (и если Вам не трудно):


  • Star on Github
  • Like on Alternative.to
  • Расскажите друзьям. 🙂

Ссылки:

→ Репозиторий на GitHub
→ Релизы на GitHub
→ Wiki на GitHub

→ Обсудить на GitHub
→ Скриншоты

Теги:

  • punto switcher
  • переключение раскладки
  • c#
  • caps lock
  • open-source
  • GPL v2
  • winapi
  • .net
Хабы:

  • Open source
  • C#
  • Разработка под Windows

Всего голосов 59: ↑49 и ↓10 +39

Комментарии 171

Максим @BladeMight

Программист, Отаку

Сайт Twitter Github Skype Telegram

Punto Switcher 2.9 – автопереключение раскладки клавиатуры

17 ноября разработчики программы Punto Switcher обновили ее до версии 2. 9. Программа практически уникальна в своем роде – я знаю только одного конкурента – Keyboard Ninja, правда, похоже, что он не обновлялся с 2002 года. Итак, что же это за программа и какая у нее функциональность? Punto Switcher – автоматический переключатель раскладки клавиатуры. Иногда, когда вы забываете переключить раскладку с русской на английскую или с английской на русскую, то получаете ерунду вместо набранного слова. Теперь о переключателе клавиатуры можно просто забыть, переключение будет производиться автоматически. Программа использует принцип невозможности сочетаний некоторых букв для русского и английского языков. В русском языке, например, слово не может начинаться с буквы «Ь». Punto Switcher следит за тем, какие буквы на клавиатуре набираются и, если программа видит недопустимое сочетание, например, «Ьщку» («More»), после нажатия пробела, Enter или Tab происходит автоматическое переключение раскладки. Использован словарь из нескольких миллионов слов для того, чтобы определить невозможные сочетания.
Также имеется возможность самообучения – если какое-то слово некорректно обрабатывается, его можно занести в список исключаемых и отправить разработчикам, чтобы они занесли его в словарь. За год существования программы, благодаря пользователям, разработчики внесли 9000 дополнений.

О возможностях Punto Switcher можно судить по ее главному окну:

Помимо автоматического переключения раскладки программа может:

  • Автоматически заменять сокращения и аббревиатуры, которые вы зададите
  • Конвертировать выделенный текст по Shift+Break
  • Озвучивать опечатки
  • Переключать раскладку по нажатию правой клавиши Ctrl
  • Конвертировать буфер обмена
  • Исправлять сЛУЧАЙНОЕ нажатие Caps Lock
  • Исправлять первые две прописные буквы
  • Вести дневник, в котором остается все, что вы набираете на клавиатуре.

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

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

Вывод: Весьма полезная программа, особенно для тех, кто набирает большие объемы текста и всех, кого раздражает исправлять текст, набранный не в той раскладке.

Скачать программу можно с сайта разработчика .

Желающие помочь развитию программы: кошелек в Яндекс-Деньги: 410017919272.

рекомендации

Управление раскладкой клавиатуры | Slack

NextPrevious

Действия, активность, журналы доступа, доступность, добавление, добавление приложения, добавление участников, добавление в Slack, администраторов, все пароли, аналитика, android, объявление, объявления, каталог приложений, значок приложения, Apple Watch, утверждение приложений, архив, Asana, Atlassian, приложения для автоматизации, значок, платежные данные, выставление счетов, Bitbucket, пользователь бота, поле, просмотр, звонки, звонки:, отмена, изменения, каналы, канал мгновенно, управление каналами, уведомление о канале, предложения каналов ,заявить домены,закрыть,культура компании,экспорт соответствия,составить,компьютеры,разговоры,преобразовать,подключить,подключенные учетные записи,подключение,подключение,копировать сообщения,создать,настроить,настроить,индивидуальный SAML,специализированный,группы поддержки клиентов,экспорт данных, безопасность данных, деактивация, каналы по умолчанию, удаление, удаление, развертывание Slack, рабочий стол, прямые сообщения, каталог, отключение, обнаружение и присоединение, API-интерфейсы обнаружения, отображаемое имя, DM, «Не беспокоить», домен, домены, понижение версии, Dropbox, дубликаты учетных записей ,редактирование,редактирование,образование,адрес электронной почты,электронная почта,смайлики,смайлики,Enterprise Grid,Enterprise Mobility Management,руководители,экспорт,неудачные платежи,Fair Billing,faqs,поиск,формат,форматирование,фреймворк для приложений,бесплатные пробные версии,общие, начало работы, giphy, интеграция github, организация github, github, глоссарий, приложения google, календарь google, диск google, гости, основные моменты, хипчат, человеческие ресурсы, IFTTT, импорт, входящие веб-перехватчики, интеграции, ios, приглашение, ИТ-команды, JIRA ,присоединиться,Не отставать,раскладка клавиатуры,сочетания клавиш,доступ к связке ключей,уведомления по ключевым словам,язык,языки,оставить,предварительный просмотр ссылок,загрузка,ограничения,ссылки,linux,mac,управление рабочей областью,управление приложениями,управление участниками,маркетинг,упоминание ,объединение,действия с сообщениями,отображение сообщений,отображение сообщений,продукты Microsoft,мобильный,мобильное нажатие,перемещение каналов,перемещение рабочих областей,несколько,отключение звука,имя,имена,шум,некоммерческие организации,уведомление,OneDrive,на борту,владельцы,пароль,оплата ,платежи,разрешения,телефоны,булавка,план,планы,плюс план,опросы,основное владение,политика конфиденциальности,приоритизация задач,частный,частный канал,личные заметки и файлы,управление проектами,общедоступный канал,цель,Quick Switcher,цитата, повторная активация, чтение, набор, информация о реферере, напоминание, удаление, переименование, удержание, запрос новой рабочей области, роль, роли, RSS, продажи, Salesforce, SAML, SCIM, обеспечение SCIM, чтение с экрана, поиск, отправка, продолжительность сеанса, общий доступ сообщения, общий доступ, общий канал, общие каналы, боковая панель, вход, выход, режим регистрации, единый вход, день Slack, Slack для команд, уведомления Slack, сохранение заметок и файлов, соглашения об уровне обслуживания, ServiceNow, регистрация, slack status,slackbot,слэш-команды,сниппет,отложить,разработчики программного обеспечения,звезда,статистика,Stride,синхронизация,планшеты,налог,потоки,часовой пояс,советы,списки дел,тема,каналы сортировки,Условия обслуживания,Trello, устранение неполадок, устранение неполадок, тур, твиттер, двухфакторная аутентификация, непрочитанные сообщения, обновления, обновление, загрузка, имя пользователя, группы пользователей, URL-адрес, отпуск, поставщик и денежный перевод, видео, голосовой вызов, голос, что есть, что важно, белый список ,windows phone,windows,working in,приложения рабочей области,запросы на создание рабочей области,обнаружение рабочей области,настройки рабочей области,wunderlist,ваши действия,Zapier,масштабирование,функции,#general,хранение файлов,сообщения,темный режим,тема,Workflow Builder,Voice ,видео,демонстрация экрана,рабочие процессы,календарь Outlook,приглашенные участники,передача права собственности,белый список,управление корпоративными ключами,безопасность транспортного уровня,строгая аутентификация клиента,CSV,текстовый файл,часы работы,

Найдите «[термин]». См. [n]+ больше результатов →

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

Примечание: Предпочтение по выбору раскладки клавиатуры может быть установлено только в том случае, если Slack не может определить используемую вами клавиатуру.

  1. На рабочем столе щелкните изображение своего профиля в правом верхнем углу.
  2. Выберите Предпочтения в меню.
  3. Выберите  Язык и регион .
  4. В разделе Раскладка клавиатуры откройте раскрывающееся меню, чтобы выбрать вариант.

Совет: Если вы используете сочетания клавиш для навигации по Slack, некоторые из них могут отличаться в зависимости от выбранной вами раскладки клавиатуры.

Автоматически переключать клавиатуру в соответствии с языком окружающего текста — английский

CrossChris

#1

В Ms Office есть опция, которая изменяет язык (раскладку клавиатуры), определяя контекст, в котором находится курсор. Есть ли аналогичный вариант для libreOffice 4.1 (в Ubuntu 13.04)?

овенг

#2

Вы конкретно не упоминаете рассматриваемое средство MS, но предположительно имеете в виду параметр «Определять язык автоматически». В настоящее время нет точного эквивалента в LO, о котором я знаю, хотя вы можете получить аналогичную функциональность, используя доступные опции в LO.

В разделе Инструменты > Опции… > Языковые настройки > Вспомогательные средства письма языков и словарей можно выбрать. Если вы установили необходимые языковые пакеты и выбрали Доступные языковые модули и Пользовательские словари , то вы уже на полпути. Другая половина решения в LO заключается в использовании стилей (абзаца и символа). Эти стили могут иметь связанный язык, и вы можете переключаться между ними с помощью сочетания клавиш или макроса. Проще говоря, рассматриваемый текст должен быть вручную помечен как относящийся к определенному языку, т. е.

|начальный язык A|текст на языке A|конечный язык A|начальный язык B|текст на языке B|конечный язык B|

Таким же образом Word помечает текст.

Изменение раскладки клавиатуры — это функция операционной системы, над которой LO не имеет никакого контроля, хотя клавиатура и язык часто связаны, как указано в этой теме. Microsoft, вероятно, может предложить эту услугу только в ситуации, когда она является поставщиком операционной системы. Знаете ли вы, предлагается ли эта функция в Microsoft Office для Mac?

КроссКрис

#3

Нет. Но приложения Windows могут управлять системой. Функционал Ms Word очень удобен при написании многоязычных текстов.

РОСт53

#4

@CrossChris — Как указал @oweng, LibO не управляет клавиатурой; это функция ОС.

Я также не знаю, какие языки вы хотите использовать и какая раскладка клавиатуры для каждого языка.

Вот что я делаю:
Используемые языки: английский, японский, немецкий и голландский.
Я использую японскую клавиатуру, которая для латинских символов имеет ту же раскладку, что и английская (США) клавиатура, и я использую одну и ту же клавиатуру для всех языков.

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

В LibO язык либо распознается автоматически, либо я устанавливаю язык для всего текста, абзаца, выделения и т. д. Для этого см. Writer >инструменты>язык> и затем выберите.

КроссКрис

#5

Вы используете одну клавиатуру и, не меняя языковую раскладку, печатаете все на любом языке, который вам нужен?! интересный. У меня стандартная клавиатура. Но я могу добавить еще одну стандартную клавиатуру. Может быть здорово использовать каждый для языка. Кстати, я надеюсь, что языковая раскладка MS Word может быть изменена автоматически. Меня слишком беспокоит, что в LibO такого нет,

КроссКрис

#6

Эй, твой ответ натолкнул меня на блестящую идею. Чтобы использовать две клавиатуры, как в этом. Спасибо.

РОСт53

#7

@CrossChris — я видел вашу ссылку на Ask Ubuntu. Хотя я перехожу с XP на Linux, я бы никогда не стал использовать клавиатуру для каждого языка (в моем случае 4) просто потому, что мне нужно было бы запомнить все клавиши для всех клавиатур и практиковать слепую печать для каждой раскладки клавиатуры. Таким образом, я очень доволен тем, как работает LibO. Перед переходом на LibO я сделал то же самое с MSO.

РОСт53

#8

@CrossChris. Я преобразовал один из своих компьютеров в Linux и пишу в LibO Writer так же, как в XP. Я использую одну клавишу для переключения между японским и латинским языками символов (в моем случае английский, немецкий и голландский). Таким образом, даже в Linux вам не нужны две клавиатуры. Тем не менее, пожалуйста, не стесняйтесь делать это.

Роджертат1945

#9

После нескольких месяцев использования LinuxMint 16 я обновился до LinuxMint 17.

В LinuxMint 16 я смог заставить LibreOffice работать на японском языке.

НО

В LinuxMint 17 стало НЕВОЗМОЖНО получить японские символы на этом японском ноутбуке (с японской клавиатурой с хираганой и ABC). 10 часов я пытался.

Пойми, основные улучшения.

РОСт53

#10

Я нашел ваш ответ здесь чисто случайно!!!

Я пишу на своей машине XP (японская клавиатура, клавиша 半角/半角, разделенный пробел и т. д.) очень часто японский/английский/немецкий в LibO (Writer, Calc и Impress) в одном и том же документе.

Оставить комментарий

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

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