我是这样实现的,在关闭自己A之前,运行另外一个程序如B,在关闭自己A,在B程序中,延时10秒启动A程序,再关闭本身B。运行程序用API

解决方案 »

  1.   

    不要另外创建一个程序,只需创建一个自己的“副本”进程即可。
    1。接收参数改变,将新参数保存;
    2。用CreateProcess创建一个自己的“克隆”进程——即新的“Instance”;
    3。结束自己。
    4。与此同时,“克隆”进程读取刚才保存的新参数,并且以新的参数开始运行。
      

  2.   

    这样就可以了呀
    void ReStart(BOOL bNormal)
    {
    PROCESS_INFORMATION info;
    STARTUPINFO startup;
    char szPath[128];
    char *szCmdLine; GetModuleFileName(AfxGetApp()->m_hInstance, szPath, sizeof(szPath));
    szCmdLine = GetCommandLine();
    GetStartupInfo(&startup); BOOL bSucc = CreateProcess(szPath, szCmdLine, NULL, NULL,
    FALSE, NORMAL_PRIORITY_CLASS, NULL, NULL, &startup, &info); if(bNormal && bSucc)
    {
    CWnd *pWnd = AfxGetMainWnd(); if(pWnd != NULL)
    {
    pWnd->PostMessage(WM_CLOSE, 0, 0);
    }
    else
    ExitProcess(-1);
    }
    else
    ExitProcess(-1);
    }