Funzione RegisterApplicationRestart (winbase.h)
Registra l'istanza attiva di un'applicazione per il riavvio.
Sintassi
HRESULT RegisterApplicationRestart(
[in, optional] PCWSTR pwzCommandline,
[in] DWORD dwFlags
);
Parametri
[in, optional] pwzCommandline
Puntatore a una stringa Unicode che specifica gli argomenti della riga di comando per l'applicazione quando viene riavviato. La dimensione massima della riga di comando che è possibile specificare è RESTART_MAX_CMD_LINE caratteri. Non includere il nome dell'eseguibile nella riga di comando; questa funzione lo aggiunge per l'utente.
Se questo parametro è NULL o una stringa vuota, la riga di comando registrata in precedenza viene rimossa. Se l'argomento contiene spazi, usare virgolette intorno all'argomento.
[in] dwFlags
Questo parametro può essere 0 o uno o più dei valori seguenti.
Valore restituito
Questa funzione restituisce S_OK in caso di esito positivo o in uno dei codici di errore seguenti.
Codice restituito | Descrizione |
---|---|
|
Errore interno. |
|
La riga di comando specificata è troppo lunga. |
Commenti
La registrazione iniziale per il riavvio deve verificarsi prima che l'applicazione verifichi un'eccezione non gestita o diventi non rispondente. È quindi possibile chiamare questa funzione dall'interno del callback di ripristino per aggiornare la riga di comando.
Per un'applicazione Windows aggiornata, l'ultima opportunità di chiamare questa funzione è durante l'elaborazione del messaggio di WM_QUERYENDSESSION . Per un'applicazione console che viene aggiornata, la registrazione deve verificarsi prima che il programma di installazione tenti di arrestare l'applicazione (è necessario mantenere la registrazione corrente; non è possibile chiamare questa funzione durante la gestione della notifica di CTRL_C_EVENT).
Se si esegue la registrazione per il riavvio e l'applicazione rileva un'eccezione non gestita o non è reattiva, l'utente offre l'opportunità di riavviare l'applicazione; l'applicazione non viene riavviata automaticamente senza il consenso dell'utente. Tuttavia, se l'applicazione viene aggiornata e richiede un riavvio, l'applicazione viene riavviata automaticamente.
Per evitare riavvii ciclici, il sistema riavvia l'applicazione solo se è in esecuzione per un minimo di 60 secondi.
Si noti che per il riavvio di un'applicazione quando l'aggiornamento richiede un riavvio del computer, il programma di installazione deve chiamare la funzione ExitWindowsEx con il flag di EWX_RESTARTAPPS impostato o la funzione InitiateShutdown con il set di flag SHUTDOWN_RESTARTAPPS.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows Vista [solo app desktop] |
Server minimo supportato | Windows Server 2008 [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | winbase.h (include Windows.h) |
Libreria | Kernel32.lib |
DLL | Kernel32.dll |