しばらく前に C++/WinAPI を使用して Windows スクリーンセーバーをコーディングしましたが、Windows 8 のログオン画面 (ユーザーがまだログインしていないとき) で試してみると、動作しないようです。これは明らかに Windows 8 のバグです。システムを再起動すると、スクリーンセーバーが正常に動作し始めるからです。(この動作は、以前のバージョンの Windows では発生していないことに注意してください。)
何が起こるかというと、スクリーンセーバーが起動すると画面が真っ暗になり、その後何も起こりません。明らかに、Visual Studio でデバッグすることはできないため、ScreenSaverProc() の WM_CREATE で実行を開始する必要がある最初の行にトレース ステートメントを追加しましたが、上記のようにスクリーンセーバーがハングアップしたときにその行が呼び出されることはありません。
これは、WM_CREATE メッセージが送信される前に一部の初期化コードがハングアップすることを示していますが、Microsoft の WinAPI スクリーンセーバーに関するチュートリアルでは、Scrnsave.lib (または私の場合は ScrnsavW.lib) にリンクするように指示されているため、そのコードにアクセスできないことを修正します。 )
Scrnsave.lib を使用せずに WinAPI スクリーンセーバーを作成する方法はありますか?