魔法-マジックレイアウトスイッチ

最初の関数を作成した方法


すべては、私がC#でプログラミングしたいという事実から始まりました(このプログラムを作成する前はC#の知識がほとんどありませんでした)、そして私が望んでいたようにうまくいかないプログラム(Punto Switcher)が1つあり、それに代わるものを探していました簡単にdotSwitcherに落ち着きました。しかし、しばらくして、彼女は機能性に欠け、ソースコードを見ることに決め、いくつかの場所ですべてがどのように機能するかを理解しましたが、何よりも、WinAPIを理解できませんでした。 dotSwitcherで使用される機能に関する情報を探して、少しずつ始めました このすべての魔法の意味を暗記し、理解するための現金(そう、それは私には思えました)。


既に作成されたdotSwitcherに書き込みたくありませんでした。 まったく異なるコーディングスタイルがあり、さらに、この関数またはその関数や変数がなぜか分からないので、すべてをゼロから作成することにしました。 始めるために、私はHOOKsを見つけ、それから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.


:



:


, / ( ):



:


GitHub
GitHub
Wiki GitHub
GitHub



Source: https://habr.com/ru/post/J321518/


All Articles