- 378 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 16:38:35 ]
- XP、Vistaで時間が経過した場合にシステムがスクリーンセーバーを起動できるかを
取得したいのですが、良い方法がありましたらアドバイスお願いします。 ・分かっていること スクリーンセーバーの有効無効、SCRファイル名は SystemParametersInfo で取得 SCRファイルが存在するか否かは GetFileAttributes や FindFirstFile など ・詰まっていること アクティブウィンドウが WM_SYSCOMMAND の SC_SCREENSAVE をどう処理するか ・試してみたこと/調べてみたこと DefWindowProc の APIフック後、SC_SCREENSAVE を投げて届くか監視 ダイアログアプリでは呼ばれず、GINA の WlxScreenSaverNotify での拒否も未考慮で× GINAを実装し、SC_SCREENSAVE を投げて WlxScreenSaverNotify が呼ばれるか監視 VistaではGINAが廃止され、ISensLogon::StartScreenSaver は代替にならず× CreateDesktopW/A を APIフック後 SC_SCREENSAVE を投げて "Screen-saver" な デスクトップ作成要求が発生するかを監視 winlogon.exe に対しては APIフックが失敗してしまい× ・スキル不足で試せていないこと NtUserCreateDesktop をカーネルAPIフック後 SC_SCREENSAVE を投げて、以下略 そもそも、ただスクリーンセーバーが起動出来るか確認したいだけなのに APIフックまで持ち出さなければならないのか…。
|

|