Вопрос

В проекте Windows, над которым я работаю, я хочу иметь пункт меню, который полностью перезапускает приложение.Есть ли функция Windows или C++, которая делает это?

Это было полезно?

Решение

Для этого нет встроенной функции, но хорошо спроектированное приложение может просто остановить все, что происходит, а затем вернуться к началу.Если вы хотите по-настоящему «начать все сначала», вам придется запустить новый процесс (возможно, это последнее, что вы сделаете перед завершением работы старого).

Другие советы

Нет, ты должен сделать это сам.Например, вы можете запустить внешний процесс, который будет ждать, пока вы закроете приложение, а затем запустить его снова.

На самом деле вы, возможно, захотите взглянуть на API Restart Manager, который входит в состав Windows Vista.Как всегда, вы можете вызвать это, сколько душе угодно, и их явная поддержка придет для этого в Визуал С++ 2010.

Уже нужно было это сделать.Самый простой способ без дальнейшего чтения — написать простой .bat-файл (вручную или динамически с помощью вашего приложения), запуская вашу программу, а затем вызывая этот bat-файл из вашего приложения.

В bat-файле может даже содержаться строка, которую нужно удалить после запуска приложения...

Вы хотите позвонить Создатьпроцесс а затем изящно закройте текущий экземпляр приложения с помощью ВыходПроцесс(), или, если вы ссылаетесь на среду выполнения C, просто вернитесь из main().Но сначала вам следует спросить себя, почему вам вообще нужно воссоздавать этот процесс.

ВыходWindowsEx это то, что вы хотите.Вы также можете запустить выключение.exe утилита встроенная в windows.

shutdown -t0 -r (restart the system after 0 seconds)
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top