スクリーンセーバーが実行中かどうか確かめるには?

解決


たかみちえ  2001-10-08 23:03:05  No: 74915  IP: [192.*.*.*]

えっと、スクリーンセーバー実行中でも最前面表示するソフトを作りたいんです。
  考えてみた結果、それには通常時はPaintイベントで、
スクリーンセーバー実行開始時にも最前面のAPIをつかえばいいんですね、

  でも、肝心のスクリーンセーバーの実行を取得する方法がわかりません。
  独立のAPIなら探しようもありますけど、
ほかのスクリーンセーバー関係のはSendMessageを使ってるので、
たぶんこれもそうだと思うんです。

  能書きが長くなりました^^;
スクリーンセーバーの実行を知るには、
SendMessageの引数(もしくは独立したAPI?)に何をいれればいいんでしょう?

編集 削除
Say  2001-10-09 12:29:59  No: 74916  IP: [192.*.*.*]

参考までに

スクリーンセーバーが実行中かどうかを得る
(新山(へろぱ)のホームページ)
http://plaza5.mbn.or.jp/~heropa/vb34.htm

編集 削除
たかみちえ  2001-10-09 21:52:06  No: 74917  IP: [192.*.*.*]

あ、ほんとだ^^;
  そんなになくてはならないものでもないので、
これでいいかなと思います^^;

  でもこのAPIって、なにかまだ使い道ありそうですねぇ…。
ちょっと調べてみようかな…。

  ありがとうございました♪

編集 削除
たかみちえ  2001-10-09 21:52:32  No: 74918  IP: [192.*.*.*]

解決して今せんでした^^;

編集 削除
Say  2001-10-10 10:36:51  No: 74919  IP: [192.*.*.*]

へろぱ氏が述べられているように、
プロセスを列挙し、拡張子が.scrであるものを
さがす、というのが一番汎用的な方法です。
プロセス列挙に関しては、Galliverの
「MSDNの羅針盤」 に参考記事があります。

http://www.galliver.co.jp/writing/msdn/msdn15/

編集 削除
たかみちえ  2001-10-10 18:47:15  No: 74920  IP: [192.*.*.*]

うーんと、スクリーンセーバー状態取得が成功したか…。
  よくわかりませんけど^^;
(スクリーンセーバー実行中にはデバッグできないんですもの…)

  強力最前面表示できなかったので…。

編集 削除
Say  2001-10-11 09:35:01  No: 74921  IP: [192.*.*.*]

Fileにログとって、あとでチェックしたらどうです?

編集 削除
たかみちえ  URL  2001-10-11 20:11:14  No: 74922  IP: [192.*.*.*]

なんで今まで気がつかなかったんでしょう^^;
  そうですね。

編集 削除
たかみちえ  2001-10-12 07:29:12  No: 74923  IP: [192.*.*.*]

ちゃんとするときは起動してるみたいです。
  で、スクリーンセーバーでも手前はしました。

  でも、プレビュー表示でやってはだめだったんですねぇ…。

編集 削除
ham  2001-10-16 18:43:23  No: 74924  IP: [192.*.*.*]

スクリーンセーバーが動いているかどうかが問題ではなく、あるWINDOWを
最前面に表示できればいいっていう考え方もできますよね。
ただ、スクリーンセーバーにパスワードがかかっている場合はこの方法で
はダメだと思いますが、そうでなければ、APIのSetCursorPosを使ってマ
ウスカーソルを動かしてやればスクリーンセーバーから抜けられると思う
ので、それでWINDOWを表示してやるというのはどうでしょうか。

編集 削除
たかみちえ  2001-10-16 22:09:22  No: 74925  IP: [192.*.*.*]

それだとスクリーンセーバー愛好家から文句がきそうですね^^;
  とりあえず、Windows95では正常動作しないでしょうけど、今のままでいいです。

編集 削除