首页 > 学院 > 开发设计 > 正文

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

2019-11-17 05:10:16
字体:
来源:转载
供稿:网友

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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表