как делать рестарт программы в Builder

  • Автор темы Автор темы woka
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.
W

woka

скажите как сделать рестарт программы? пишу в билдере и через MainMenu нажимая на что либо я хочу запускать программу заново!
 
Один из способов

C++:
WinExec(Application->ExeName.c_str(),SW_SHOW);
Application->Terminate();

Добавлено: Второй способ:
C++:
ShellExecute(NULL,"open",Application->ExeName.c_str(),NULL,ExtractFilePath(Application->ExeName).c_str(),SW_SHOW);
Application->Terminate();
Смысл запускаешь и сразу закываешь первую программу...
Если в программе есть заставка, то есть смыл запускать с параметром ком. строки, и обрабатываешь показывать ли заставку или нет...
 
спасибо помогло однако если будет стоять защита от открытия 2 окон программы это не будет мешать?
 
Может и мешать... Используй мютекс примерно так...

C++:
ShellExecute(NULL,"open",Application->ExeName.c_str(),NULL,ExtractFilePath(Application->ExeName).c_str(),SW_SHOW);
CreateMutex(NULL,False,"MyMut")
Application->Terminate();

А в главной форме что то типо:
C++:
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
try
{
Application->Initialize();
Application->CreateForm(__classid(TForm1), &Form1);
HANDLE M = CreateMutex(NULL,1,"MyMut");
WaitForSingleObject(M,-1);
Application->Run();
}
Так точно проблем не возникнит..
 
ещё раз спасибо
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab