忍者ブログ
適当に日々あったこととか書いてます。
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

SHORT GetAsyncKeyState(
int vKey // 仮想キーコード
);

関数呼び出し時にキーが押されているかどうか、また、前回の GetAsyncKeyState 関数呼び出し以降にキーが押されたかどうかを判定します。

<パラメータ>
・vKey
 [入力]最大 256 とおりの仮想キーコードのいずれかを指定します。
 Windows NT/2000:特定のキーの左キーと右キーを区別できます。詳細については、「解説」を参照してください。

<戻り値>
関数が成功すると、前回の GetAsyncKeyState 関数呼び出し以降にキーが押されたかどうか、およびキーが現在押されているかどうかを示す値が返ります。
最上位ビット(0x8000)がセットされたときは現在そのキーが押されていることを示し、最下位ビット(0x0001)がセットされたときは前回の GetAsyncKeyState 関数呼び出し以降にそのキーが押されたことを示します。
他のスレッド( またはプロセス)のウィンドウがキーボードフォーカスを備えている場合は、0 が返ります。
Windows 95:Windows 95 は、左キーと右キーを区別するための定数をサポートしていません。これらの定数を指定して GetAsyncKeyState を呼び出すと、0 が返ります。

<解説>
GetAsyncKeyState 関数は、マウスボタンの状態も取得できます。
ただしこの関数は、物理的なボタンのマップ先である論理的なマウスボタンの状態ではなく、物理的なマウスボタンの状態を取得します。
たとえば、GetAsyncKeyState(VK_LBUTTON) を呼び出すと、そのボタンが論理的な左ボタンと右ボタンのどちらに割り当てられているかにかかわりなく(後者は「左利き用」の割り当て)、常に物理的な左ボタンの状態を返します。
物理的なマウスボタンと論理的なマウスボタンの対応を調べるには、次の呼び出しを行います。

GetSystemMetrics(SM_SWAPBUTTON)

この呼び出しは、マウスボタンの左右が入れ替わっているときに TRUE を返します。

vKey パラメータの値として、VK_SHIFT、VK_CONTROL、VK_MENU の各仮想キーコード定数を指定できます。この場合、左右を区別することなく、Shift、Ctrl、Alt の各キーの状態を取得できます。

<対応情報>
Windows NT/2000:Windows NT 3.1 以降
Windows 95/98:Windows 95 以降
ヘッダーファイル:Winuser.h 内で宣言、Windows.h をインクルード
インポートライブラリ:User32.lib を使用

引用:ttp://msdn.microsoft.com/ja-jp/library/cc364583.aspx

<使用メモ>
キーボード押されたときの情報検出に使用。
でも別のアプリとかで同じ関数が使われてたら、入力情報はまともに検出できなくなる可能性が高い・・・のか?
少なくとも同時に動作させたらどっちかしか検出できなかった。
もしかしたら他のアプリの使われ方次第でどっちかが動作不良起こす?
0x0000(初回)→0x8001(押す)→0x8000(押し続ける)→0x0000(放す)→0x0001(押してすぐ放す)→0x0000(次に取得)
PR
この記事にコメントする
お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
この記事へのトラックバック
この記事にトラックバックする:
カレンダー
03 2025/04 05
S M T W T F S
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
フリーエリア
最新CM
[06/02 Sai]
[04/23 Sai]
[02/02 tuku]
[11/06 sai]
[10/13 Sai]
最新TB
プロフィール
HN:
なりゆき流
性別:
非公開
趣味:
ネトゲ、読書(漫画とか漫画とか漫画とか)
自己紹介:
日々をだらだらと生きております。
バーコード
ブログ内検索
アクセス解析

HTML & CSS Designed by ittuan

忍者ブログ │ [PR]