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

 

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

Автор: admin от 9-02-2017, 17:55, посмотрело: 512

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


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


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



  • Сменить раскладку.

  • Послать BackSpace [количество пойманных клавиш] раз.

  • Ввести [пойманные клавиши].


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


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


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


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


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

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


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

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


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

    Описание


    Программа написана на .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...)

    • Портативная, не требует установки.

    • Сниппеты, автозамена маленьких слов на предложения.


    Помощь:


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



    Ссылки:


    -> Репозиторий на GitHub
    -> Релизы на GitHub
    -> Wiki на GitHub
    -> Обсудить на GitHub
    -> Скриншоты



    Источник: Хабрахабр

    Категория: Программирование, Веб-разработка, Windows

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

    Добавление комментария

    Имя:*
    E-Mail:
    Комментарий:
    Полужирный Наклонный текст Подчеркнутый текст Зачеркнутый текст | Выравнивание по левому краю По центру Выравнивание по правому краю | Вставка смайликов Выбор цвета | Скрытый текст Вставка цитаты Преобразовать выбранный текст из транслитерации в кириллицу Вставка спойлера
    Введите два слова, показанных на изображении: *