6

私の友人はノルウェー語を学んでおり、次のようなキーを送信するグローバル ホット キー プログラムを作成したいと考えています。

æ
ø
å

私の問題は、keybd_event関数でこれらのキーを送信できないことです。仮想キーコードに制限されているようです。使用できる別の関数またはそれらを送信するためのトリックはありますか?

4

1 に答える 1

7

代わりにSendInputを使用する必要があります。keybd_eventは、そのような文字の送信をサポートしていません(ノルウェーのコンピューターのように、それらがすでに現在のコードページにある場合を除く)。åを送信するためのサンプルコードのビット:

KEYBDINPUT kb={0};
INPUT Input={0};

// down
kb.wScan = 0x00c5;
kb.dwFlags = KEYEVENTF_UNICODE;
Input.type = INPUT_KEYBOARD;
Input.ki = kb;
::SendInput(1,&Input,sizeof(Input));

// up
kb.wScan = 0x00c5;
kb.dwFlags = KEYEVENTF_UNICODE|KEYEVENTF_KEYUP;
Input.type = INPUT_KEYBOARD;
Input.ki = kb;
::SendInput(1,&Input,sizeof(Input));

知らなかった場合:Windowsに追加のキーボードレイアウトをインストールし、ショートカットを使用してそれらを切り替えるのは簡単です。

リッケティル!

于 2010-09-16T13:40:32.397 に答える