次の方法で共有


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 つ以上を指定できます。

意味
RESTART_NO_CRASH
1
ハンドルされない例外が原因でプロセスが終了した場合は、プロセスを再起動しないでください。
RESTART_NO_HANG
2
アプリケーションが応答していないためにプロセスが終了した場合は、プロセスを再起動しないでください。
RESTART_NO_PATCH
4
更新プログラムのインストールが原因でプロセスが終了した場合は、プロセスを再起動しないでください。
RESTART_NO_REBOOT
8
更新の結果としてコンピューターが再起動された場合は、プロセスを再起動しないでください。

戻り値

この関数は、成功 したS_OK 、または次のいずれかのエラー コードを返します。

リターン コード 説明
E_FAIL
内部エラーです。
E_INVALIDARG
指定したコマンド ラインが長すぎます。

注釈

再起動の初期登録は、アプリケーションが未処理の例外を検出するか、応答しなくなる前に行う必要があります。 その後、復旧コールバック内からこの関数を呼び出して、コマンド ラインを更新できます。

更新中の 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

関連項目

UnregisterApplicationRestart