在程序中重启自己的一种方法

在程序中重启自己的一种方法,第1张

在程序中重启自己的一种方法,第2张

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

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 在程序中重启自己的一种方法

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情