スクリーンセーバー防止

[戻る]
もんもん 2005/01/10(月) 13:37:29
win xp visual c++.net 2003

ジョイスティックで操作するゲームを作っているのですが、
途中でスクリーンセーバーが起動してしまいます。
これを防ぐにはどうすればいいのでしょうか?

akey 2005/01/10(月) 19:39:10
ゲームの起動中は、スクリーンセーバーの起動不能にする

::SystemParametersInfo( SPI_SETSCREENSAVEACTIVE, FALSE, ...

akey 2005/01/10(月) 19:54:45
ちょっと日本語変だったので・・
>ゲームの起動中は、スクリーンセーバーの起動不能にする
ゲームの起動中は、スクリーンセーバーを起動不能にする

あとは、常時 マウスorキー イベントを送り続けるとか・・

もんもん 2005/01/12(水) 11:41:44
マウスorキー イベントを送り続けるには、
具体的にどの関数を使えばいいのでしょうか?
ヘルプをみてもイベントに関する項目が多すぎてわかりません...

PATIO 2005/01/12(水) 13:15:12
キーボードイベントを送りたいのであれば、
keybd_eventをHELPで調べてみてください。
使い方についてはHELP参照と言うことで。

PATIO 2005/01/12(水) 13:17:48
因みにこれを定期的に送っているとエディットボックスへの入力や
マウスのコントロールに影響が出る場合があるので注意は必要だと思いますよ。
例えば、shiftキーのキーダウンイベントを送っている時にマウス操作をすると
shiftキーと押しながら操作したのと同じ事になります。

もんもん 2005/01/13(木) 14:51:36
[[解決]]
未使用の0x88を使って起動防止できました。
ありがとうございました。

シャノン 2005/01/13(木) 15:05:38
SystemParametersInfo の方がエレガントな気がするなぁ

akey 2005/01/13(木) 16:35:02
すでに解決済みですが・・

当然、SystemParametersInfoの方がお勧めです

>あとは、常時 マウスorキー イベントを送り続けるとか・・
こっちは、こんな手もあるかな程度で書いたのですが
こちらが選ばれるとは・・

PATIO 2005/01/13(木) 17:08:58
そうですね。

私もSystemParametersInfoの方がよいと思います。

ミル 2005/01/13(木) 17:18:52
SystemParametersInfoだと異常終了したら
設定残ったまんまじゃないの?
再起動でなおるのかいな?

もんもん 2005/01/14(金) 15:50:13
SystemParametersInfoだと

起動時
アクティブ/インアクティブ
終了時

に設定しなければいけませんが、
イベントだと一行ですむので楽かと思って(^^;
でもおすすめということなのでSystemParametersInfoを使おうと思います。

dairygoods 2005/01/14(金) 17:08:12
自アプリケーションがアクティブな間だけ防止すればよいのなら、
WM_SYSCOMMANDのSC_SCREENSAVEを無視する方法もあります。

また、SystemParametersInfoで無効化した場合、
ユーザーが「画面のプロパティ」を開いて元に戻すことが可能ですから、
確実にしたいなら、たとえば、ウィンドウがアクティブになるたびに
有効化されていないか調べて、再設定するなどの処理が必要でしょう。

#個人的には、特定のアプリケーションがシステムワイドな設定を
#変更すべきではないと思います。

シャノン 2005/01/14(金) 17:28:05
> また、SystemParametersInfoで無効化した場合、
> ユーザーが「画面のプロパティ」を開いて元に戻すことが可能ですから、
> 確実にしたいなら、たとえば、ウィンドウがアクティブになるたびに
> 有効化されていないか調べて、再設定するなどの処理が必要でしょう。

> #個人的には、特定のアプリケーションがシステムワイドな設定を
> #変更すべきではないと思います。

されど、フルスクリーンでゲームしている時にスクリーンセーバーが起動したりすると
大変ウザいのも確かなわけで。
だったら、そのゲームの設定ダイアログにでも「実行中はスクリーンセーバーを抑止す
る」とかいうオプションを設ければよろしいのではないかと。
それを承知してチェックしているのなら、システムワイドな設定を勝手に変更したこと
にはならないでしょうし、チェックしておきながら画面のプロパティで戻しちゃって
も、それはユーザの勝手でしょうから。

dairygoods 2005/01/14(金) 19:26:38
> それを承知してチェックしているのなら、システムワイドな設定を勝手に変更したこと
> にはならないでしょうし、チェックしておきながら画面のプロパティで戻しちゃって
> も、それはユーザの勝手でしょうから。

そうですね。ユーザーが認識しているのなら、設定を変えるのがよいと思います。

古いスレッドには追加発言できません。