C'è una funzione 'restart' in Windows / C ++
Domanda
In un progetto di Windows sto lavorando, ho intenzione di avere una selezione di menu che riavvia copletely l'applicazione. C'è una funzione di Windows o C ++ che fa questo?
Soluzione
Non c'è un built-in per questo, ma un'applicazione ben progettata può semplicemente smettere di tutto quello che sta succedendo e poi loop back al punto di partenza. Se si vuole un vero e proprio 'nuovo inizio', si dovrà generare un nuovo processo (forse come l'ultima cosa che fai prima di quello vecchio si spegne.)
Altri suggerimenti
No, è necessario farlo da soli. Per esempio, è possibile eseguire processo esterno che aspettare fino a quando si esce la vostra applicazione, e quindi eseguirlo di nuovo.
In realtà si potrebbe desiderare di dare un'occhiata alle API Restart Manager che è venuto con Windows Vista. Come mai si può p-richiamare questo al vostro cuore di contenuti e la loro esplicito sostegno a venire per esso in Visual C ++ 2010 .
Già necessario per fare questo. Il modo più semplice, senza alcuna ulteriore lettura sarebbe quella di scrivere un semplice file di bat-(a mano o in modo dinamico per l'applicazione) di iniziare il vostro programma e quindi chiamando che bat-file dalla vostra applicazione.
Il file bat-può anche contenere una riga per rimuovere se stesso dopo aver iniziato la vostra applicazione ...
Si desidera chiamare CreateProcess quindi chiudere l'istanza corrente dell'applicazione con grazia con ExitProcess () , o se ci si collega al runtime C, appena tornati da main (). Ma prima ci si dovrebbe chiedere perché è necessario ricreare il processo, in primo luogo.
ExitWindowsEx è quello che volete. È inoltre possibile eseguire il shutdown.exe utility integrata in Windows.
shutdown -t0 -r (restart the system after 0 seconds)