サスペンドでスクリーンセーバーが解除されないようにするには?


あゆあゆ  2005-06-30 19:47:58  No: 90753  IP: [192.*.*.*]

スクリーンセーバーをかけてからサスペンドし、
サスペンドから復帰した後でもスクリーンセーバーが
有効な状態にしたいのですがうまくいきません。

SetSuspendStateを実行したタイミングでスクリーンセーバーが
勝手に解除されているみたいです・・・。
何かいい方法がありましたらご教授お願いいたします。

'サンプルコード
Private Sub cmd_Suspend_Click()

    'スクリーンセーバーをかける
    Call ShellExecute( _
        0, _
        "open", _
        "C:\WINNT\system32\logon.scr", _
        0, _
        0, _
        SW_SHOWNORMAL)
    
    'サスペンド状態に移行する
    SetSuspendState 0, 0, 0
    
End Sub

編集 削除
ななし  2005-07-01 18:43:01  No: 90754  IP: [192.*.*.*]

うまくいくかどうか分かりませんが、とりあえず
「復帰を検知する」方法だけ。
プログラム内で
WM_POWERBROADCASTメッセージを監視して
PBT_APMRESUMESUSPEND通知であった場合は
スクリーンセイバーを設定?(起動?)する。
のはどうでしょう。

http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/jpdnw2kcli/htm/AppSpecDesk7.asp



#「スクリーンセーバーが有効な状態」というのは
#スクリーンセイバーを設定した状態
#スクリーンセイバーが起動している状態
#どちらでしょうか?(私にはどちらも回答できないかも)

編集 削除