トップページ > 記事閲覧
フルスクリーン時のPrintScreenキーの取得について
名前:anekitt 日時: 2018/01/29 12:37

質問させていただきます。 フルスクリーン時のPrintScreenキーの取得が出来ずに困っています。 ウィンドウ時には問題なく取得できているのですが、 フルスクリーンにすると取得できません。 対策方法が分からないので、知恵をお貸しいただけたらと思います。 以下サンプル int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { char KeyBuf[ 256 ] ; // DXライブラリ初期化処理 ChangeWindowMode(false); if( DxLib_Init() == -1 ) return -1; SetDrawScreen(DX_SCREEN_BACK); // 無限ループ while( 1 ) { ClearDrawScreen(); // すべてのキーの状態を得る GetHitKeyStateAll( KeyBuf ) ; char text_work[1024]; int i; for(i = 0;i < 256;i++){ sprintf(text_work, "%d ", KeyBuf[i]); if(i == 0xB7){ DrawString(100 + (i % 16) * 16, 100 + (i / 16) * 16, text_work, GetColor(255, 0, 0)); }else{ DrawString(100 + (i % 16) * 16, 100 + (i / 16) * 16, text_work, GetColor(255, 255, 255)); } } ScreenFlip(); // Windows 依存のメッセージ処理を行う if( ProcessMessage() == -1 ) break ; } // DXライブラリ使用の終了処理 DxLib_End() ; // ソフトの終了 return 0 ; } ChangeWindowModeにtrueを入れてあげるとウィンドウモードで起動し、 PrintScreenキーの場所であるKeyBuf[KEY_INPUT_SYSRQ]に1が入るのですが、 フルスクリーンだとキーの取得が出来ません。 お忙しいとは思いますが、何卒よろしくお願いします。
メンテ

Page: 1 |

Re: フルスクリーン時のPrintScreenキーの取得について ( No.1 )
名前:管理人 日時:2018/01/30 03:38

手元の Windows7 環境ではフルスクリーンでも PrintScreen キーの状態は取得できました 原因は不明ですが、DxLib_Init() を実行する前の箇所に SetUseDirectInputFlag( TRUE ); を記述することで OSやその他の影響を無視して強制的にキーの状態を取得できるようになりますので、よろしければお試しください SetUseDirectInputFlag( TRUE ); if( DxLib_Init() == -1 ) return -1; もし SetUseDirectInputFlag( TRUE ); を追加しても駄目でしたら、SetKeyExclusiveCooperativeLevelFlag( TRUE ); という 記述も増やしてみてください、更に強制力を増すことができます SetUseDirectInputFlag( TRUE ); SetKeyExclusiveCooperativeLevelFlag( TRUE ); if( DxLib_Init() == -1 ) return -1; ただ、SetKeyExclusiveCooperativeLevelFlag( TRUE ); を追加すると Altキーと F4キーを同時に押すことで ソフトを終了することができなくなりますので注意してください( Altキーと F4キーが押されたらソフトを終了する処理を 自分で組む必要があります )
メンテ
Re: フルスクリーン時のPrintScreenキーの取得について ( No.2 )
名前:anekitt(解決) 日時:2018/01/30 20:47

SetUseDirectInputFlag( TRUE ); ではキー取得は出来ませんでしたが、 SetKeyExclusiveCooperativeLevelFlag( TRUE ); を使うことでキー取得が出来るようになりました。 対応、ありがとうございました。
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存