当前位置:萝卜系统下载站 > 技术开发教程 > 详细页面

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

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

更新时间:2022-07-06 文章作者:未知 信息来源:网络 阅读次数:

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

温馨提示:喜欢本站的话,请收藏一下本站!

本类教程下载

系统下载排行

网站地图xml | 网站地图html