RegisterApplicationRestart 函式 (winbase.h)
註冊應用程式的作用中實例以重新啟動。
語法
HRESULT RegisterApplicationRestart(
[in, optional] PCWSTR pwzCommandline,
[in] DWORD dwFlags
);
參數
[in, optional] pwzCommandline
Unicode 字串的指標,指定重新啟動應用程式時的命令行自變數。 您可以指定的命令列大小上限為RESTART_MAX_CMD_LINE個字元。 請勿在命令列中包含可執行文件的名稱;此函式會為您新增它。
如果此參數為 NULL 或空字串,則會移除先前註冊的命令行。 如果自變數包含空格,請使用自變數周圍的引號。
[in] dwFlags
此參數可以是 0 或一或多個下列值。
值 | 意義 |
---|---|
|
如果進程因為未處理的例外狀況而終止,請勿重新啟動進程。 |
|
如果程式因應用程式未回應而終止,請勿重新啟動進程。 |
|
如果程式因為安裝更新而終止,請勿重新啟動進程。 |
|
如果計算機因為更新而重新啟動,請勿重新啟動進程。 |
傳回值
此函式會在成功或下列其中一個錯誤碼時 傳回S_OK 。
傳回碼 | Description |
---|---|
|
內部錯誤。 |
|
指定的命令行太長。 |
備註
在應用程式遇到未處理的例外狀況或變得沒有回應之前,必須先開始進行重新啟動的初始註冊。 然後,您可以從復原回呼內呼叫此函式,以更新命令行。
對於正在更新的 Windows 應用程式,呼叫此函式的最後一個機會是在處理 WM_QUERYENDSESSION 訊息時。 針對正在更新的主控台應用程式,必須先進行註冊,安裝程式才會嘗試關閉應用程式, (您必須讓註冊保持最新狀態;處理CTRL_C_EVENT通知) 時,您無法呼叫此函式。
如果您註冊重新啟動,且應用程式遇到未處理的例外狀況或沒有回應,則會提供使用者重新啟動應用程式的機會;應用程式不會在使用者同意的情況下自動重新啟動。 不過,如果應用程式正在更新且需要重新啟動,則會自動重新啟動應用程式。
為了避免迴圈重新啟動,系統只會在至少 60 秒執行時重新啟動應用程式。
請注意,若要讓應用程式在更新需要重新啟動計算機時重新啟動,安裝程式必須呼叫 ExitWindowsEx 函式並設定EWX_RESTARTAPPS旗標,或是已設定 SHUTDOWN_RESTARTAPPS 旗標的 InitiateShutdown 函式。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows Vista [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2008 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | winbase.h (包含 Windows.h) |
程式庫 | Kernel32.lib |
DLL | Kernel32.dll |