RegisterApplicationRestart 関数 (winbase.h)
アプリケーションのアクティブなインスタンスを再起動用に登録します。
構文
HRESULT RegisterApplicationRestart(
[in, optional] PCWSTR pwzCommandline,
[in] DWORD dwFlags
);
パラメーター
[in, optional] pwzCommandline
アプリケーションの再起動時のコマンド ライン引数を指定する Unicode 文字列へのポインター。 指定できるコマンド ラインの最大サイズは、RESTART_MAX_CMD_LINE文字です。 実行可能ファイルの名前をコマンド ラインに含めないでください。この関数によって追加されます。
このパラメーターが NULL または空の文字列の場合は、以前に登録したコマンド ラインが削除されます。 引数にスペースが含まれている場合は、 引数を囲む引用符を使用します。
[in] dwFlags
このパラメーターには、0 または次の値の 1 つ以上を指定できます。
戻り値
この関数は、成功 したS_OK 、または次のいずれかのエラー コードを返します。
リターン コード | 説明 |
---|---|
|
内部エラーです。 |
|
指定したコマンド ラインが長すぎます。 |
注釈
再起動の初期登録は、アプリケーションが未処理の例外を検出するか、応答しなくなる前に行う必要があります。 その後、復旧コールバック内からこの関数を呼び出して、コマンド ラインを更新できます。
更新中の Windows アプリケーションの場合、この関数を呼び出す最後の機会は 、WM_QUERYENDSESSION メッセージの処理中です。 更新中のコンソール アプリケーションの場合、インストーラーがアプリケーションのシャットダウンを試みる前に登録を行う必要があります (登録を最新の状態に保つ必要があります。CTRL_C_EVENT通知を処理するときにこの関数を呼び出すことはできません)。
再起動に登録し、アプリケーションで未処理の例外が発生した場合、または応答しない場合は、アプリケーションを再起動する機会がユーザーに提供されます。アプリケーションは、ユーザーの同意なしに自動的に再起動されません。 ただし、アプリケーションが更新され、再起動が必要な場合、アプリケーションは自動的に再起動されます。
循環的な再起動を防ぐために、システムはアプリケーションが少なくとも 60 秒間実行されている場合にのみ、アプリケーションを再起動します。
更新でコンピューターの再起動が必要な場合にアプリケーションを再起動するには、インストーラーで、EWX_RESTARTAPPS フラグが設定された ExitWindowsEx 関数、または SHUTDOWN_RESTARTAPPS フラグが設定された InitiateShutdown 関数を呼び出す必要があります。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2008 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | winbase.h (Windows.h を含む) |
Library | Kernel32.lib |
[DLL] | Kernel32.dll |