c+++プログラムで自分をリセットする方法です。

1703 ワード

回転:http://www.ieehoo.com/Tech/167/View_109863.菷top
 
=================================================================================================
 
プロジェクト.cppファイル(Project 1.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)strePath=Application->ExeName;if(!:CreateProcess(LPCTSTR)strath.cct()、NULL、NULL、NULL、NULL、FALSE、NORMAL_PRIORITYUCLASS、NULL、NULL、&StartInfo、&procStruct)return 0;return 0;メインウィンドウのユニットヘッダファイル(Unit 1.h)に追加:extern book g_bIsRunAgainメインウィンドウのユニット.cpp(Unit 1.cpp)に追加:book g_bIsRunAgain=false;//------------------------------------------------------------------------------------------------------------------------------------プログラムを閉じますfastcal TframMain:BTnClose Click(TObject*Sender){Close()/----------------------------------------------------------------------------------------------------------------------------------------------------------fa
stcal TframMain::btnReExcuteClick(TObject*Sender){gubIsRunAgan=true;Close();]