VS2010 MFC Dialog实现程序自动重启

    VS2010 MFC Dialog 做了一个小项目,需要实现自动重启,搜了一些文章,各有优缺点,所以将这些文章做了一下简单的综合,下面是自己的实现过程,并附上了参考文章链接,希望能给新手带来帮助。


1. 先建一个VS2010 MFC Dialog 工程,此处之所以强调VS2010 是因为字符编码默认采用Unicode,即宽字符格式,如果在像VC6这种ANSI编码的直接看本文附的 "参考文章"即可。

具体实现过程不在赘述。


      2. 定义 全局变量  bool g_bIsRunAgain = false; 此处也可以定义为主对话框的成员变量,并在OnInitDialog中初始化为false.


     3.  主窗体添加 “重启” 按钮,并双击添加代码如下:

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


    4. 在类向导中添加WM_CLOSE 消息,在OnClose()中添加如下代码:

扫描二维码关注公众号,回复: 3951661 查看本文章


if(g_bIsRunAgain)
     {
        //得到当前程序的路径;
    wchar_t strPath[100]; 
    GetModuleFileName(NULL,strPath,100);
        
STARTUPINFO StartInfo;
        PROCESS_INFORMATION procStruct;
        memset(&StartInfo, 0, sizeof(STARTUPINFO));
        StartInfo.cb = sizeof(STARTUPINFO);
       
if( CreateProcess( (LPCTSTR) strPath,NULL,NULL,NULL,FALSE,NORMAL_PRIORITY_CLASS,NULL,NULL,&StartInfo,&procStruct ) )
{
CloseHandle( procStruct.hProcess );
CloseHandle( procStruct.hThread );
}
     }


CDialogEx::OnClose();




5. 调试运行即可实现重启功能。


参考文章:https://blog.csdn.net/foreverhuylee/article/details/22311161


  https://blog.csdn.net/lvwx369/article/details/41865981


版权声明:本文为博主原创文章,转载请注明出处。

猜你喜欢

转载自blog.csdn.net/Rxiang12/article/details/79723539
今日推荐