- PVSM.RU - https://www.pvsm.ru -
Все началось с того что я захотел программировать на C#(до создания этой программы у меня было почти что никаких знаний о C#), и была одна программа которая не работала так как я хотел (Punto Switcher) долго-долго я искал к ней альтернативы и ненадолго остановился на dotSwitcher нравилась она мне… Но через некоторое время я решил что ей не хватает функционала и решил посмотреть исходный код, кое-где кое-как я разобрался как все работает, но больше всего не понимал одну вещь — WinAPI, и начал z искать информацию по функциям используемых в dotSwitcher и понемногу я начинал запоминать и понимать смысл всего этого волшебства (так мне тогда казалось).
Писать в уже созданный dotSwitcher мне не хотелось т.к. там совсем другой стиль кодинга, да и к тому же я не понимал бы зачем та или иная функция или переменная, так что я решил создать все с нуля! Для начала я разобрался с HOOK'ами, потом с функцией PostMessage с помощью которой я смог менять раскладку, благодаря чему уже у меня появились идеи по поводу того как можно будет конвертировать набранный текст. я создал список клавиш в который попадали все глобально нажатые клавиши (благодаря клавиатурному HOOK'у) приделал очистку списка клавиш по кликам мыши (благодаря мышиному HOOK'у) и создал горячую клавишу по которой менялась раскладка, но оставался вопрос "Как сделать чтобы программа вводила эти клавиши?", тогда то я и узнал о функциях SendInput и keybd_event которые делали именно это. После я переделал функцию горячей клавиши на:
И она работала!!! Так как я и хотел.
К каждой функции нужен свой способ осуществления, здесь я описал как я создал первую функцию смены раскладки последнего набранного текста.
Касательно названия я назвал программу (на японском, т.к. он мне очень нравится) — 魔法(Mahou) что на Японском значит "Волшебство","Магия" — C#, WinAPI и мой
Вот так выглядело первое окно Mahou:
Вот так выглядит главное окно теперь:
Работает даже на Windows XP SP3!
Программа написана на .Net 4.5, а для ее работы нужен .Net 4.0 и выше. Еще она использует WinAPI для работы всех HOOK'ов и других функций. Для сборки нужен всего лишь .Net, то есть Вы можете сами собрать сборку из исходников запустив buildMahou.cmd. Проект Open Source так что любой может изменять и создавать на его основе свои сборки согласно лицензии GPL v2. Подробное описание в репозиторие [2], описание функций на Wiki [3]. Скачать можно здесь [4]. Еще Mahou есть в Chocolatey [5], и для установки достаточно набрать команду cinst Mahou -y
.
Если вам нравится программа, и/или Вы хотите меня поддержать (и если Вам не трудно):
→ Репозиторий на GitHub [2]
→ Релизы на GitHub [7]
→ Wiki на GitHub [8]
→ Обсудить на GitHub [9]
→ Скриншоты [10]
Автор: BladeMight
Источник [11]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/c-2/241757
Ссылки в тексте:
[1] мозг: http://www.braintools.ru
[2] репозиторие: https://github.com/BladeMight/Mahou
[3] описание функций на Wiki: https://github.com/BladeMight/Mahou/wiki/%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA-%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D0%B9
[4] здесь: https://github.com/BladeMight/Mahou/releases/latest
[5] Chocolatey: https://chocolatey.org/packages/Mahou
[6] Like on Alternative.to: http://alternativeto.net/software/mahou
[7] Релизы на GitHub: https://github.com/BladeMight/Mahou/releases
[8] Wiki на GitHub: https://github.com/BladeMight/Mahou/Wiki
[9] Обсудить на GitHub: https://github.com/BladeMight/Mahou/issues
[10] Скриншоты: https://github.com/BladeMight/Mahou/wiki/Screenshots%7C%D0%A1%D0%BD%D0%B8%D0%BC%D0%BA%D0%B8
[11] Источник: https://habrahabr.ru/post/321518/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best
Нажмите здесь для печати.