スクリーンセーバーが起動・終了するタイミングを知りたい

ActiveBasicでのプログラミングでわからないこと、困ったことなどがあったら、ここで質問してみましょう(質問を行う場合は、過去ログやWeb上であらかじめ問題を整理するようにしましょう☆)。
返信する
メッセージ
作成者
西野孝雄

スクリーンセーバーが起動・終了するタイミングを知りたい

#1 投稿記事 by 西野孝雄 »

件名のままなのですが、休止・スタンバイになる/復帰するタイミングを知る方法は簡単だったので
同じ要領で分かると思ったのですが、同じ一定時間放置したら起動するものでも少し事情が違うようで、
起動のタイミングはWM_SYSCOMMANDのSC_SCREENSAVEでキャッチできる事が分かったのですが
終了のタイミングはSystemParametersInfoのSPI_GETSCREENSAVERRUNNINGで
起動中か1秒毎に調べるという、なんとも原始的というか面倒臭い方法が多く紹介されていました。

別のやり方でもっと簡単な方法はないか、なにかウィンドウメッセージが送られてこないか調べたのですが
調べ方が悪いのか分からなかったので質問させていただく事にしました。
宜しくお願いします。

OS XP HOME SP3
AB 4.13
西野孝雄

スクリーンセーバーが起動・終了するタイミングを知りたい

#2 投稿記事 by 西野孝雄 »

特に反応が無いって事は、別の方法は無いって事なのかな。
見てる人も少ないし、こういったAB固有ではない質問は、
別の掲示板にした方が良いような気がしました。
プログラミング初心者質問掲示板で有名な所ってどこがあるのか知らないけど。

とりあえずありがとうございました。
7
記事: 473
登録日時: 2005年5月31日(火) 18:51
お住まい: 新潟県
連絡する:

Re: スクリーンセーバーが起動・終了するタイミングを知りたい

#3 投稿記事 by 7 »

> 特に反応が無いって事は、別の方法は無いって事なのかな。
自分も調べてみましたけど、SystemParametersInfo()関数を使うのが普通みたいですね。
スクリーンセーバーが起動したらスレッドを作って、SystemParametersInfoをグルグル回して引っかかったら、スレッドの終了で良いと思います。
どうせスクリーンセーバー起動してるんですし、スレッド作らずに回してても良いでしょうし。

メッセージをキャッチする「イベントドリブン」も、結局は同じように原始的な方法ですし、スクリーンセーバーが終わった時にメッセージを全部のウィンドウに飛ばすよりも、スクリーンセーバーが終わったことを感知したいウィンドウ(プログラム)だけが拾いに行った方が効率的な気もしますし。
スクリーンセーバーの終了に反応するプログラムを組むことも多くないと思いますしね。

> プログラミング初心者質問掲示板で有名な所ってどこがあるのか知らないけど。
自分は使ったことありませんけど、2chにプログラミング板があるのでそちらを利用してみてはどうでしょう。
自分はもっぱらモバイル板ばかり眺めています...。
西野孝雄

Re: スクリーンセーバーが起動・終了するタイミングを知りたい

#4 投稿記事 by 西野孝雄 »

返信有難う御座います。
誰も返信しないだろうと思ってチェックしてませんでした。
遅れてすいません。

結局、他の方法はわからなったので原始的な方法をを採用しました。
同じ事をやるならより簡単で分かりやすい方法を使いたいんですよね。
昔、自分が書いたコードとかみると「なんでこんな回りくどいやり方を!?」と思う事が多々有ります。
まぁ、今書いてるの物も来年にはそうなってるんでしょうけど…。

に、2chですか!全否定はしませんし、中には丁寧に教えてくれる人もいるんでしょうけど・・・
う~ん、確かに人は多そうですけどね。ABのスレッドなら見たことあります。
konisi
記事: 893
登録日時: 2005年7月25日(月) 13:27
お住まい: 埼玉県東松山市
連絡する:

#5 投稿記事 by konisi »

西野孝雄 さんが書きました:に、2chですか!全否定はしませんし、中には丁寧に教えてくれる人もいるんでしょうけど・・・
Googleで真面目に検索しても出てこないような情報について質問した時には
真摯に返信してくれる人もかなり居ますよ。
「質問箱」を名前に含むスレッドには上級ユーザーが張り付いてたりしますし。

#プログラミング板ではなく、プログラム技術板では・・・?
Website→http://web1.nazca.co.jp/himajinn13sei/top.html
ここ以外の場所では「暇人13世」というHNを主として使用。

に署名を書き換えて欲しいと言われたので暇だしやってみるテスト。
西野孝雄

Re: スクリーンセーバーが起動・終了するタイミングを知りたい

#6 投稿記事 by 西野孝雄 »

konisiさん、返信有難う御座います。
に、2chは、さ、最終手段として使わさせていただこうかなと思います…。


ところで、私の最初の書き込みで「起動のタイミングはWM_SYSCOMMANDのSC_SCREENSAVEでキャッチできる」
と書きましたが、すいません、間違ってました。
前面というかアクティブ状態になってないとキャッチできないみたいです。

何でこういう仕様なのかは分かりませんがこれじゃ全然使えない…。
というわけで、私の場合、常にSystemParametersInfoのSPI_GETSCREENSAVERRUNNINGで調べ続けなきゃいけなくなりました。

まぁ、誰もこんな事気にして無いかもしれませんが、後々検索してくる人の為に。
返信する