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 或以下错误代码之一。
返回代码 | 说明 |
---|---|
|
内部错误。 |
|
指定的命令行太长。 |
注解
在应用程序遇到未经处理的异常或变得无响应之前,必须进行重启的初始注册。 然后,可以从恢复回调内部调用此函数以更新命令行。
对于正在更新的 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 |