2

VS2010 の C# .NET4.0 でスクリーン セーバーを開発していますが、実際に画面を表示する前にかなりの処理を行う必要があります (かなり複雑なデータベース アクセス)。ユーザーはこの処理が行われていることに気付かず、すべての準備が整うと全画面フォームが開始されるため、これは問題ありません。つまり、Windows 8 で実行している場合を除きます。

Microsoft コミュニティで検索する ( http://answers.microsoft.com/en-us/windows/forum/windows_8-desktop/bubbles-screensaver-has-black-background/e0807324-5ca6-4abe-b6ba-716848b41ff5?page= 4 ) は、Windows 8 で設計変更が行われ、スクリーンセーバーがデスクトップの画像の上に描画されないようにしたことを明らかにしています。以前にデスクトップ上に描画されたスクリーンセーバーは、代わりに、選択した「メトロ」背景色を使用して無地の背景上に描画されます。実験の結果、.scr ファイルが起動されるとすぐに、つまりフォームが表示される前に、このバックグラウンドが開始されることがわかりました。したがって、フォームを最小化または 0% の不透明度で表示するようなトリックは機能しません。

私が思いついた最善の方法は、コードが開始されたとき、つまりデータベース処理やその他の画面構築が行われる前に、最初のアクションとして全画面のプレーンな黒いフォームを表示することです。普通の画面を別の普通の画面に置き換えようとするのはなぜですか? Windows のデフォルトの背景色は青色のようです。これは BSOD の青のような青で、起動すると警告を発するように見えます。したがって、Windows 8 のユーザー エクスペリエンスのために私ができる最善の方法は、画面に何か意味のあるものが表示される前に、青がすばやくちらつき、続いて 3 ~ 4 秒間真っ黒になることです。 . Microsoft のこの新しい動作は、明らかに「仕様による」ものです。プレビュー モードで表示されないという事実は、MS が後で片付けると思われるエラーであるようです。

だから私の質問は、スクリーンセーバーフォームが作動する準備が整うまでデスクトップを表示し続けることができるように、これを回避する方法を知っている人はいますか?

4

2 に答える 2

1

win8でのこの厄介な設計上の決定に関して、同様の問題にかなり苦労しました。私は最終的に妥協しなければなりませんでしたが、時間があれば、防弾ソリューションを探し続けます。

監視システムの起動後にバッチファイルを実行し、スレッドがアイドル時間を検出してそのバッチを再度実行することになりました。

@start /wait Bubbles.scr /s & rundll32 user32.dll,LockWorkStation

これが行うことは次のとおりです。

  • フルスクリーンでスクリーンセーバーのプレビューを開始し (これは win8 で動作します)、待機します。
  • ユーザーアクションロック画面に表示され、ユーザーはパスワードの入力を求められます

私が言ったように、それはより良いものを見つけるまでの妥協です. それが役に立てば幸い

于 2014-04-24T12:35:07.457 に答える
1

win10にアップデート。そのクールな scr を使用しようとすると、同じ問題が見つかりました。

ミリ秒の制限をだましてみると、非常に長い解決策が 1 つだけ見つかりました。

  • スクリーンセーバーによって呼び出されたイベントのログを有効にします。

ここで gpedit による指示: https://superuser.com/questions/538146/run-a-batch-cmd-upon-screensaver

  • スクリーンセーバーの起動時に他のコマンドやアプリを起動できるようになりました。

  • C:\Windows\System32 に移動

  • Bubbles.scr をコピーし、名前を Bubbles.exe に変更します

  • 次に、引数 /s を指定して C:\Windows\System32\Bubbles.exe を実行するようにタスクを構成します (administration->taskcheduler)。

  • 一部の Windows スクリーンセーバーと構成を使用して、1 分以上使用します。(または、上のリンクから空のオプションを指定して「runsarver」を使用するか、独自の empty.exe を作成して名前を .scr に変更し、右のメニューからインストールするなど)

非表示のスクリーンセーバー機能をカスタマイズするクールなアプリを見つけました: http://winaero.com/download.php?view.8

(小さなバグで動作しますが、win10 で必要に応じて動作します)

PC をロックするための 1 つの短所のチェックボックスはオフにする必要があります。

必要に応じて、Bubbles を実行するための独自のアプリを作成し、上記のように PC またはバット ファイルのロックを終了します。

人々が私のソリューションを楽しんでくれることを願っています:)

于 2015-08-21T13:47:14.607 に答える