Función RegisterApplicationRestart (winbase.h)

Registra la instancia activa de una aplicación para reiniciarla.

Sintaxis

HRESULT RegisterApplicationRestart(
  [in, optional] PCWSTR pwzCommandline,
  [in]           DWORD  dwFlags
);

Parámetros

[in, optional] pwzCommandline

Puntero a una cadena Unicode que especifica los argumentos de la línea de comandos de la aplicación cuando se reinicia. El tamaño máximo de la línea de comandos que puede especificar es RESTART_MAX_CMD_LINE caracteres. No incluya el nombre del ejecutable en la línea de comandos; esta función la agrega por usted.

Si este parámetro es NULL o una cadena vacía, se quita la línea de comandos registrada anteriormente. Si el argumento contiene espacios, use comillas alrededor del argumento .

[in] dwFlags

Este parámetro puede ser 0 o uno o varios de los valores siguientes.

Valor Significado
RESTART_NO_CRASH
1
No reinicie el proceso si finaliza debido a una excepción no controlada.
RESTART_NO_HANG
2
No reinicie el proceso si finaliza debido a que la aplicación no responde.
RESTART_NO_PATCH
4
No reinicie el proceso si finaliza debido a la instalación de una actualización.
RESTART_NO_REBOOT
8
No reinicie el proceso si el equipo se reinicia como resultado de una actualización.

Valor devuelto

Esta función devuelve S_OK si se ejecuta correctamente o uno de los siguientes códigos de error.

Código devuelto Descripción
E_FAIL
Error interno.
E_INVALIDARG
La línea de comandos especificada es demasiado larga.

Comentarios

El registro inicial para el reinicio debe producirse antes de que la aplicación encuentre una excepción no controlada o deje de responder. Después, podría llamar a esta función desde dentro de la devolución de llamada de recuperación para actualizar la línea de comandos.

Para una aplicación de Windows que se está actualizando, la última oportunidad de llamar a esta función es mientras se procesa el mensaje WM_QUERYENDSESSION . Para una aplicación de consola que se está actualizando, el registro debe producirse antes de que el instalador intente apagar la aplicación (debe mantener el registro actualizado; no puede llamar a esta función al controlar la notificación de CTRL_C_EVENT).

Si se registra para reiniciar y la aplicación encuentra una excepción no controlada o no responde, el usuario se ofrece la oportunidad de reiniciar la aplicación; la aplicación no se reinicia automáticamente sin el consentimiento del usuario. Sin embargo, si la aplicación se está actualizando y requiere un reinicio, la aplicación se reinicia automáticamente.

Para evitar reinicios cíclicos, el sistema solo reiniciará la aplicación si se ha estado ejecutando durante un mínimo de 60 segundos.

Tenga en cuenta que, para que una aplicación se reinicie cuando la actualización requiere un reinicio del equipo, el instalador debe llamar a la función ExitWindowsEx con la marca EWX_RESTARTAPPS establecida o la función InitiateShutdown con el conjunto de marcas SHUTDOWN_RESTARTAPPS.

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado winbase.h (incluya Windows.h)
Library Kernel32.lib
Archivo DLL Kernel32.dll

Vea también

UnregisterApplicationRestart