1

私は無数の投稿や記事で、私が期待していることを実行すると主張しているのを見てきましたが、悲しいことに、これまでのところ、解決策を提供したり、助けたりすることはありませんでした.

ほら、私は使用しています: https://github.com/gmamaladze/globalmousekeyhookをキーボードフックとして...

使用法がGlobalHookKeyPressイベントで説明しているように、私は実装しようとしています:

if ((Control.ModifierKeys & Keys.Control) == Keys.Control)
 {
    textBlock.Text = string.Format("CTRL + {0}", e.KeyChar);
 }

CTRL+ <'Put Captured KeyCode Here'> (eg CTRL+ )をキャプチャするAには、ただし、そのようにするとCTRL、キャプチャされたキーではなく、単に " +" が textBlock に書き込まれます...代わりに実行しようとすると:


int key = Convert.ToInt32(e.KeyChar);
 if ((Control.ModifierKeys & Keys.Control) == Keys.Control)
 {
     textBlock.Text = string.Format("CTRL + {0}", key);
 }

CTRL+「KeyCode」を適切に書き込みますが、正しいものを提供しますが、「数値」形式で、「 CTRL+ A」ではなく「 CTRL+ 」にするために何をしなければなりません1か?


私は1つの方法を試しましたが、探しているものを実装するためのより良い方法がある可能性があるため、複雑すぎておそらく役に立たないように見えました.これは私がしたことです:

int key = Convert.ToInt32(e.KeyChar);
if ((Control.ModifierKeys & Keys.Control) == Keys.Control)
{
    switch (key)
    {
        case 1:
            textBlock.Text = "CTRL + A";
            break;
        ...
        default:
            break;
    }
}

さて、私の考えは、あなたが見ているところまで...明らかに書き続けることです(ケース19の「CTRL+ S」など...)が、ご覧のとおり、タスクにはあまりにも退屈になります.. . この特殊なケースに対して推奨することは何ですか。


更新 #1

わかりましたので、掘り続けましたが、これでうまくいきました。方法はわかりませんが、うまくいきました

今、私は小さな問題に直面しています...キープレスを登録するには、ターゲットキーを2回押す必要があります...または、別のキーを押してからターゲットキーに戻ると、いくつかのように登録されます一種の遅れ、説明させてください...

+を押したいCTRL+Aを押しても何もしませんが、 + を押しても何もしていCTRLないようで、何も表示されませんが、 + を押してから+に戻ると、正しく表示されます+が表示されます。ご理解いただければ幸いです...今、何が起こっているのかわかりませんが、掘り下げています。たまたま知っている場合は、私と共有してください。本当に役に立ちます:DACTRLBCTRLBCTRLACTRLA

乾杯!

4

0 に答える 0