在工程.cpp文件(Project1.cpp)中加入:
#include "Unit1.h" WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) { try { Application->Initialize(); Application->CreateForm(__classid(TfrmMain), &frmMain); Application->Run(); } catch (Exception &exception) { Application->ShowException(&exception); } catch (...) { try { throw Exception(""); } catch (Exception &exception) { Application->ShowException(&exception); } }
if(g_bIsRunAgain) { AnsiString strPath; STARTUPINFO StartInfo; PROCESS_INFORMATION procStruct; memset(&StartInfo, 0, sizeof(STARTUPINFO)); StartInfo.cb = sizeof(STARTUPINFO); strPath = Application->ExeName; if(!::CreateProcess( (LPCTSTR) strPath.c_str(), NULL, NULL, NULL, FALSE, NORMAL_PRIORITY_CLASS, NULL, NULL, &StartInfo, &procStruct)) return 0; } return 0; }
主窗口的单元头文件(Unit1.h)中加入: extern bool g_bIsRunAgain;
主窗口的单元.cpp(Unit1.cpp)中加入: bool g_bIsRunAgain = false; //---------------------------------------------------------------------------- // 关闭程序 void __fastcall TfrmMain::btnCloseClick(TObject *Sender) { Close(); } //---------------------------------------------------------------------------- // 重启应用程序 void __fastcall TfrmMain::btnReExcuteClick(TObject *Sender) { g_bIsRunAgain = true; Close(); }
|