在程序中重起自己(C++)

    技术2022-05-11  133

    在工程.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(); }

    最新回复(0)