首页
关于我们
服务项目
作品展示
服务支持
联系我们
友情链接
网站地图
 您当前位置:网络学院 -> 编程开发系-> 编程开发-> C++教程
在c++程序中重启自己的一种方法
作者:admin 来源:网络
日期: 2007-2-27
站内搜索
文章页数:[1] 
在工程.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();
}

文章页数:[1] 
放大字体显示 缩小字体显示 打印文章 推荐给朋友
热门文章
·利用Visual C++实现系统托盘程序
·C++对象的拷贝与赋值操作
·C++程序员必需的修养
·踏入C++中的雷区——C++内存管理详解
·VC++中利用/GS开关防止缓冲区溢出
·在c++程序中重启自己的一种方法
·C++的救赎 C++开源程序库评话
·在Visual C++应用程序中彻底清除进程
·C++初学者必看的50个建议!
·初学者必备:C++经典入门详细教程
最新文章
·VC++实现Windows回收站的文件存取
·C++初学者必看的50个建议!
·在Visual C++应用程序中彻底清除进程
·C++程序员必需的修养
·如何编写异常安全的C++代码
·在c++程序中重启自己的一种方法
·踏入C++中的雷区——C++内存管理详解
·C++的救赎 C++开源程序库评话
·初学者必备:C++经典入门详细教程
·C++对象的拷贝与赋值操作
相关主题
版权申明:除部分特别声明不要转载,或者授权本站独家播发的文章外,大家可以自由转载本站的原创文章,但原作者和来自本站的链接必须保留(非本站原创的,按照原来自一节,自行链接)。文章版权归本站和作者共有。
转载要求:转载之图片、文件,链接请不要盗链到本站,且不准打上各自站点的水印,亦不能抹去本站水印。
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
发表评论  打印  刷新  推荐给朋友  返回顶部  关闭

网上大名: