解决方案 »

  1.   

    ::PostMessage(AfxGetMainWnd()->m_hWnd,WM_SYSCOMMAND,SC_CLOSE,NULL);
    //获取exe程序当前路径
    extern CVCFaceCaptureClientApp theApp; TCHAR szAppName[MAX_PATH];
    :: GetModuleFileName(theApp.m_hInstance, szAppName, MAX_PATH); CString strAppFullName;
    strAppFullName.Format(_T("%s"),szAppName); //重启程序
    STARTUPINFO StartInfo;
    PROCESS_INFORMATION procStruct;
    memset(&StartInfo, 0, sizeof(STARTUPINFO));
    StartInfo.cb = sizeof(STARTUPINFO);
    ::CreateProcess(
    (LPCTSTR)strAppFullName,
    NULL,
    NULL,
    NULL,
    FALSE,
    NORMAL_PRIORITY_CLASS,
    NULL,
    NULL,
    &StartInfo,
    &procStruct);
    }
      

  2.   

    如果不要求形式,可以做成windows服务,windows自身机制可以判读服务是重启抑或关闭
      

  3.   

    让另一个程序来重启这个程序,比如想升级,一般都有一个update.exe来重启主程序