Appで作成したパッケージのリスタートマネージャーに関する動作確認をしました。この投稿を作成していて、すべての振る舞いを簡単に確認できるツールがあったらと思いました。そこでテストツールを作成しました。Tool一般アプリでリスタートマネージャーに関する動作をそのアプリでの挙動しか確認できません。リスタートマネージャーに関するいろいろな動作確認をしたくなり、テストツールを作成しました。ダウンロードおよび機能詳細はこちらです。zipファイルの中には二つのEXEファイルがあります。64ビットWindowsの両方で起動できます。RestartManagerTest64.exeは64ビットアプリで、64ビットWindowsのみで起動できます。Vistaで導入されたリスタートマネージャーに関するAPIとWM_QUERYENDSESSIONメッセージの挙動をテストできます。メイン画面テストできるAPIテストできるAPIは以下の通りです。アプリの再起動の登録(RegisterApplicationRestart)アプリの再起動の登録解除(UnregisterApplicationRestart)シャットダウンブロックの理由の登録(ShutdownBlockReasonCreate)シャットダウンブロックの理由の登録解除(ShutdownBlockReasonDestroy)これらはメイン画面の左上の領域のボタンで試すことができます。WM_QUERYENDSESSIONメッセージのテストWM_QUERYENDSESSIONメッセージを受信したときに試すことができる機能は以下の通りです。アプリの再起動の登録(RegisterApplicationRestart)アプリの再起動の登録解除(UnregisterApplicationRestart)シャットダウンブロックの理由の登録(ShutdownBlockReasonCreate)一定時間の待機(20秒)戻り値の設定(trueまたはfalse)これらは、メイン画面の右上の領域のチェックボックスをチェックすることにより試すことができます。Kitの中にあります。SDKに含まれています。Kit\にインストールされます。この中にRmLogoTest.exeがあります。Testツールを使ってRmLogoTest.exeの成功パターン・失敗パターンの確認ができます。WM_QUERYENDSESSION)のすべてのチェックボックスのチェックを外します。ProcessId問題なくアプリが終了します。単純終了なので、アプリは再起動はしません。RegisterApplicationRestart()のチェックボックスのみ、チェックします。restartedWM_QUERYENDSESSIONメッセージを受信したタイミングで再起動の登録をして、問題なくアプリが再起動します。WM_QUERYENDSESSION)のすべてのチェックボックスのチェックを外します。RmLogoTest.exeを実行する前に、左上の領域の[RegisterApplicationRestart()]ボタンをクリックして再起動を登録します。その後、RmLogoTest.exeを起動します。restartedWM_QUERYENDSESSIONメッセージを受信したタイミングより前に再起動の登録をしておいても、問題なくアプリが再起動します。falseのチェックボックスのみ、チェックします。()シャットダウンを拒否したので、ロゴテストとしてはFAILEDになりますが、期待通りの振る舞いです。sec.のチェックボックスのみ、チェックします。()メッセージハンドラ内で5秒以上時間をかけることになるので、ロゴテストとしてはFAILEDになりますが、期待通りの振る舞いです。シャットダウンブロックの理由が表示されることの確認RmLogoTest.exeでは、シャットダウンブロックの理由が正しく登録されていることを確認できません。そのため、実際にサインアウトまたはシャットダウンまたは再起動を実行して動作確認します。falseのチェックボックスのみ、チェックします。シャットダウン拒否のテストをしています)を設定します。サインアウトまたはシャットダウンまたは再起動を実行しますWM_QUERYENDSESSIONメッセージを受信したタイミングでシャットダウン拒否の理由を登録がされます。その後、再起動画面に以下のように表示され、シャットダウン拒否の理由(シャットダウン拒否のテストをしています)が表示されています。falseのチェックボックスのみ、チェックします。シャットダウン拒否のテストをしています)を設定します。[ShutdownBlockReasonCreate()]ボタンをクリックします。サインアウトまたはシャットダウンまたは再起動を実行しますWM_QUERYENDSESSIONメッセージを受信したタイミングではシャットダウン拒否の理由を登録しませんが、再起動画面に以下のように表示され、シャットダウン拒否の理由(シャットダウン拒否のテストをしています)が表示されています。Vistaで導入されたリスタートマネージャーに関するテストができます。10の挙動を確認した結果について投稿します。