2013-03-18 14 views
9

Sto lavorando a un progetto in cui sono installati diversi software e driver su Windows 7. Questo funzionerà senza input dell'utente. Ora c'è la domanda: come posso determinare in questo programma se è necessario un riavvio per completare un'installazione (può essere un driver o un software).C#: Come è possibile rilevare un riavvio richiesto per windows 7

Stiamo lavorando su Windows 7 incorporato e non vi è alcuna barra delle applicazioni abilitata o nessun suggerimento o qualcosa di simile visibile. Il software è installato in modalità silenziosa.

risposta

8

Usa la seguente chiave di registro:

HKLM\System\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations 

Fonte: How to find out if an MSI I just installed requested a windows reboot?

, come scoperto dal richiedente di questa domanda HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending mostra quando un riavvio è in corso sulla macchina fino a quando il sistema operativo è Vista o più nuovo.

+0

Funziona anche per i conducenti? Solo per saperlo, perché ho letto che non è sicuro al 100% ^^ Grazie comunque – hoffmanuel

+0

Suppongo che dipenda da come sono installati i driver. Quello che consiglio è di controllare quel registro sul tuo sistema embedded dopo che l'installazione è stata completata. Se la chiave non fornisce le informazioni che stai cercando, aggiorna la domanda con le nuove informazioni. –

+0

Tutti i driver sono installati direttamente tramite inf, usando la funzione pinvoke e DiInstallDriver da newdev api. Ok grazie, ci proverò e tornerò con ulteriori informazioni. – hoffmanuel