こんにちは親愛なるホーカー!
この記事では、ホットキーを使用して一部のアクションを高速化および簡素化するプログラムを作成した方法を示します。
エントリー
約1か月半前、ユーザー
vvzvladが、ホットキーを押してさまざまなテキストを翻訳するプログラムのアイデアを促しました。 私はこのプログラムを非常に長い間使用していましたが、数日前にそれを改善するアイデアがありました。
異なるアクションに異なるホットキーを割り当てる機能を追加することにしました。 このために、プラグインシステムを使用しました。
その結果、HotKeyHelperプログラムが作成され
ます 。これは、
こちらからダウンロードでき
ます 。

プロジェクトファイルは
こちらです。
カットの下に、プログラムのソースコードとその説明が表示されます。
プログラム
上記で書いたように、プラグインシステムを使用することにしました。
これを行うには、プラグインインターフェイスを記述する必要があります。
public delegate void PluginHandler(string text);
そして、プラグインをロードするためのメソッドを書きます:
private void LoadPlugins() {
また、WinApiメソッドを呼び出す必要があります。そのために、それらをインポートします。
[DllImport("User32.dll", SetLastError = true)] [return: MarshalAs(UnmanagedType.Bool)] public static extern bool RegisterHotKey(IntPtr hWnd, int id, uint fsModifiers, uint vk); [DllImport("User32.dll", SetLastError = true)] [return: MarshalAs(UnmanagedType.Bool)] public static extern bool UnregisterHotKey(IntPtr hWnd, int id); [DllImport("user32.dll", SetLastError = true)] public static extern void keybd_event(byte bVk, byte bScan, uint dwFlags, int dwExtraInfo);
そして、いくつかのプラグインの機能を実行するために必要な2つのメソッドを書きます
また、カスタムホットキーを保存するためのクラスを作成します。
public class HotKey {
プラグインをロードした後、カスタムホットキーをダウンロードしてサブスクライブできます。
HotKeys = HotKey.LoadHotKeys("HotKeys.txt");
ホットキーにサインアップすると、WM_HOTKEYメッセージがウィンドウに送信されます。 ユーザーが必要な組み合わせをクリックしたタイミングを確認するには、メソッドを書き換える必要があります。
protected override void WndProc(ref Message m) {
ホットキーを作成するためのより便利なインターフェイスを追加するだけです。 これでは、面白いことは何もないと思いますが、押した組み合わせを記録するシステムをどのように作成したかを示します。
これを行うには、KeyDownおよびKeyUpフォームのイベントをサブスクライブする必要があります。
private void button1_Click(object sender, EventArgs e) { if (button1.Enabled) { button1.Enabled = false; isRecord = true; } }
まあ、それだけです。 プログラムの準備ができました。 使用を開始するためのプラグインを作成するだけです。
プラグイン
プログラムでプラグインを使用するには、IPluginからメインクラスを継承する必要があります。
これを行うには、プログラムへのリンクを追加する必要があります。 これで、簡単なプラグインの実装を作成できます。 たとえば、選択したテキストを
pastebin.comに投稿するプラグインを作成しました。
public class PastebinSender : IPlugin { public string Name { get { return "PastebinSender"; } } public bool NeedSelectedText { get { return true; } } public event PluginHandler ShowBaloonHandler; public event PluginHandler ShowFormHandler; public event PluginHandler PasteTextHandler;
これらのHTTP要求用プラグインでは、
xNetを使用し
ました選択したテキストを翻訳するためのプラグインも作成しました。
public class GoogleTranslator : IPlugin { public string Name { get { return "GoogleTranslator"; } } public bool NeedSelectedText { get { return true; } } public event PluginHandler ShowBaloonHandler; public event PluginHandler ShowFormHandler; public event PluginHandler PasteTextHandler;
プラグインを作成してコンパイルしたら、プログラムと共に1つのフォルダーに配置する必要があります。次回起動するときに、このプラグインの実行を特定のホットキーに「バインド」できます。