KEYBDINPUT構造体が持つdwFlagsのKEYEVENTF_EXTENDEDKEYについて

SendInputAPIを使う機会があったのでメモ。
SendInputを使う際は、

  • KEYBDINPUT

という構造体を定義し、dwFlagsというフラグに、「ボタンを離した」「ボタンを押した」などのフラグを設定しますがその際に、

上図キーボードに載っていないキーを指定する場合は「KEYEVENTF_EXTENDEDKEY 」(0x1)フラグを定義してやる必要があります。指定する必要があるのはIBM拡張キーボードというキーボードに新たに追加されたキーらしいです。
あとUNICODE(全角)を使う場合はKEYEVENTF_UNICODE(0x4)定数を追加します。

例:

指定しなければならないキー一覧

0 . 1 2 3 4 5 6 7 8 9 / Enterキー
↑ ← → ↓ Insert Del Home End PageUp PageDown
(そのほか)
右Ctrl PrintScreen 右Alt Break 左右Windowsキー メニューキー

でもなんかとりあえず全部にKEYEVENTF_EXTENDEDKEY を指定してやると動くみたいですけどね。しかもKEYEVENTF_UNICODEを指定した場合は不要みたい?keybd_eventだと違うのかな?一応気になったので書いてみた。


パクった参考にしたページ
http://homepage2.nifty.com/nonnon/SoftSample/CS.NET/SampleSendInput.html
http://shrimp.marokun.net/osakkie/wiki/e0%B3%C8%C4%A5%A5%AD%A1%BC/

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク