VC实现程序重新启动

在很多情况下,我们需要将当前运行的程序重新运行;此时我们就必须在程序关闭后立即重新运行程序,形成新的进程;
实例代码:
1、重启按钮事件中添加代码:

    g_bIsRunAgain=true;//控制是否重新运行的变量
    
this->SendMessage(WM_CLOSE);

2、在OnClose()消息处理中加入代码:

     if(g_bIsRunAgain)
     
{
        
char pBuf[MAX_PATH];                                  //存放路径的变量
        GetCurrentDirectory(MAX_PATH,pBuf);                   //获取程序的当前目录
        strcat(pBuf,"/");
        strcat(pBuf,AfxGetApp()
->m_pszExeName);   
        strcat(pBuf,
".exe");         
        CString strPath
= (CString) pBuf;        
        STARTUPINFO StartInfo;
        PROCESS_INFORMATION procStruct;
        memset(
&StartInfo, 0sizeof(STARTUPINFO));
        StartInfo.cb 
= sizeof(STARTUPINFO);
        ::CreateProcess(
            (LPCTSTR) strPath,
            NULL,
            NULL,
            NULL,
            FALSE,
            NORMAL_PRIORITY_CLASS,
            NULL,
            NULL,
            
&StartInfo,
            
&procStruct);
     }

     CDialog::OnClose();




 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值