2009-09-22 10 views

Répondre

3

Il n'y a pas pour cette intégré, mais une application bien conçue peut simplement arrêter tout ce qui se passe et ensuite en boucle revenir au début. Si vous voulez un vrai «nouveau départ», vous devrez lancer un nouveau processus (peut-être la dernière chose que vous faites avant que l'ancien ne s'arrête).

+0

Thanx, pourriez-vous élaborer un peu plus sur la naissance d'un nouveau processus? (Je suis assez nouveau à la programmation de Windows) –

+1

voir ici: http://stackoverflow.com/questions/1463040/does-windows-have-its-own-call-other-exe-function-c – sbi

-3

ExitWindowsEx est ce que vous voulez. Vous pouvez également exécuter l'utilitaire shutdown.exe intégré dans Windows.

shutdown -t0 -r (restart the system after 0 seconds) 
+0

Erreur de lecture. –

+0

Quitter si quelqu'un d'autre en a besoin: D –

+0

Keand64 veut redémarrer l'application, pas tout le système. – Wacek

2

Non, vous devez le faire vous-même. Par exemple, vous pouvez exécuter un processus externe qui attendra jusqu'à ce que vous quittiez votre application, puis l'exécutez à nouveau.

0

Déjà nécessaire pour cela. Le moyen le plus simple, sans autre lecture, serait d'écrire un simple fichier .bat (manuellement ou dynamiquement par votre application) en démarrant votre programme, puis en appelant ce fichier bat à partir de votre application.

Le fichier de chauve-souris peut même contenir une ligne de se retirer après avoir commencé votre application ...

0

Vous voulez appeler CreateProcess puis fermez votre instance actuelle de l'application gracieusement avec ExitProcess(), ou si vous établissez un lien à l'exécution C, revenez juste de main(). Mais d'abord vous devriez vous demander pourquoi vous devez recréer le processus en premier lieu.

1

En fait, vous pouvez jeter un oeil à l'API Restart Manager fournie avec Windows Vista. Comme toujours, vous pouvez invoquer ceci pour le contenu de votre coeur et son soutien explicite pour le Visual C++ 2010.