0

私のアプリケーションでは、ユーザーが休憩を取りたいときにログアウト ボタンをクリックしたときに、2 つのことを達成したいと考えています。

  1. 機械をロックする
  2. ユーザーがログアウトした時間を表示するカスタム スクリーン セーバーを起動します。

次の方法で簡単にロックできました。

[DllImport("user32.dll")]
private static extern void LockWorkStation();

カスタム スクリーン セーバーの作成方法に関するチュートリアルを見つけました。サンプルコードをダウンロードしたところ、問題なく動作しました。しかし、LockWorkStation();を追加したとき。行はスクリーンセーバーを殺しました。

これについて私を助けたり、回避策を提案したりできますか?

編集

チュートリアルのこのスクリーン セーバーは、WinForm だけです。どういうわけかシステムにインストールする必要がありますか?私のアプリケーションレベルから可能ですか?

4

1 に答える 1

2

最も可能性の高い解決策は次のとおりです。

  1. ワークステーションをロックする
  2. スクリーンセーバーを表示

2 番目のステップでは、次のことが重要です。

アプリケーションは、単にウィンドウを表示するプログラムです。そのため、ワークステーションがロックされている場合、表示しようとするウィンドウはユーザーに表示されません。プログラムを実際のスクリーンセーバーとして登録し、現在のスクリーンセーバーとして設定してから、たとえばメッセージを使用して起動した
場合にのみ、ウィンドウが表示されます。SC_SCREENSAVE

于 2012-09-21T12:37:57.130 に答える