トップページ > 過去ログ > 記事閲覧
PrintScreenがきかない
名前:ライブラリ使用者 日時: 2010/06/28 23:46

PrintScreenキーを押下したら画面をBMP保存する処理があるのですが、うまく動作しなくなりました。 大雑把にですが、下記の様な処理を行っています。 //キーボード入力があれば処理する if(CheckHitKeyAll(DX_CHECKINPUT_KEY) != 0) { //キーボード入力状態を取得 GetHitKeyStateAll(&Buf[0]); //PrintScreenチェック if(Buf[KEY_INPUT_SYSRQ]) { SaveDrawScreen(0,0,XPIXEL,YPIXEL,save_path); で、詳細なのですがVista,Windows7にて上記動作がしなくなりました。 なお、XPから起動した際には問題なく動作します。 また、Windows7にて互換性モードXP SP3にて起動した場合には正常に動作しました。 デバッグしてみた所、最初のCheckHitKeyAll()の状態取得でエラーを返していました。 内容確認して頂けないでしょうか。

Page: 1 |

Re: PrintScreenがきかない ( No.1 )
名前:Will 日時:2010/06/29 13:50

DxLib_Init を呼び出す前の行に SetUseDirectInputFlag( FALSE ) ; を追加して実行した場合どうなりますか? VistaではDirectInputが正常動作しない、という質問が過去ログにありましたよ。
Re: PrintScreenがきかない ( No.2 )
名前:ライブラリ使用者 日時:2010/06/29 20:32

過去ログ1665で確認しました。 SetUseDirectInputFlag(TRUE)でちゃんと動きました。 (確認) DirectInputがXPまでは常に動作、Vista以降は非動作となっていたものを、上記フラグで常に動作させるという認識でいいのですよね? 以下過去ログ文章抽出 XPで他アプリがアクティブになっていてもキーの押下状態を取得できるのは DirectInput を使用しているからで、 Vistaでも DirectInput を使用すれば他アプリがアクティブになっていてもキーの押下状態は取得できるのですが Vista 以降では押したことが正確に取得できないキーがあったり、デバッグ起動時の挙動が安定していなかったりと、 ( Vista 以降は DirectInput の使用は非推奨になったので仕様がないのですが・・・ )そんなこんなでデフォルトでは Vista 以降は DirectInput を使用ないようになっています
Re: PrintScreenがきかない ( No.3 )
名前:管理人 日時:2010/07/03 23:43

> (確認) > DirectInputがXPまでは常に動作、Vista以降は非動作となっていたものを、上記フラグで常に動作させるという認識でいいのですよね? はい、Willさんも仰られています通り Vista以降では DirectInput は動作が安定しないのでデフォルト設定では DirectInput を 使用しないようになっています、そして DxLib_Init の前に SetUseDirectInputFlag( TRUE ) ; を呼ぶことでそのデフォルトの動作を 無理矢理変更して Vista 上でも DirectInput を使うようにすることができます

Page: 1 |