掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
GetAsyncKeyStateの使い方について (ID:50997)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
「Win9X系のコンソールアプリで…」という問題に対して同様の問題で悩んでいます。 間をおいているようですが書きこませていただきます。 KSSPさんと同様にWin9X系のコンソールアプリにてGetAsyncStateを使用しSHIFTキーの押下判定を行っているのですが、下記の動作となってしまいます。 なぜこのような動作となってしまうのか、また解決法をご存知の方がいらっしゃいましたら、大変恐縮ですが、ご教授お願いします。 -動作- <※1>コンソールアクティブ時 :キー押下判定されない コンソール非アクティブ時:キー押下判定される <※2>WINDOWS2000で同アプリを実行すると、コンソールアクティブ時でもキー押下判定される。 <※3>GetKeyAsyncStateの換わりにGetKeyStateを使用すると、どんなときでもキー押下判定されない。 +ヘリ+さんの書込みによりますと、win2000でもwin9Xでも同様の動作をするとのことですが、なぜ環境によって動作がかわってしまうのでしょうか・・。 参考までに、現在テストとして作っているサンプルプログラムのソースを載せます。 (http://f1.aaacafe.ne.jp/~pointc/log249.htmlより抜粋したのですが「GetKeyState」→「GetAsyncKeyState」へ変更しております。) ソース(test.cpp)------------------------------------------------ #include <windows.h> #include <conio.h> #include <stdio.h> void main(void ) { while(!kbhit()){ printf("Ctrl:%d Shift:%d Alt:%d\r", (GetAsyncKeyState(VK_CONTROL) & 0x80000000)? 1 : 0, (GetAsyncKeyState(VK_SHIFT) & 0x80000000)? 1 : 0, (GetAsyncKeyState(VK_MENU) & 0x80000000)? 1 : 0); } getch(); } ------------------------------------------------------ ウィンドウズアプリにすれば解決するのかもしれませんが、コンソールアプリである必要があります。 大変申し訳ございませんが、ご助力の程宜しくお願い致します。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.