关于CreateProcess

    技术2022-05-20  41

    1. CreateProcess,如果被启动程序带有启动参数的话,必须把程序名连带启动参数放到lpCommandLine参数中,lpApplicationName置为空。

    2. STARTUPINFO必须初始化0,并设定大小

     

        CString strCmd;     strCmd.Format("%s %s", strProName, strCmdLine); //    STARTUPINFO si = {sizeof(si)};// si的第一个字段cb初始化为sizeof(si),其余字段设置为0      STARTUPINFO si;     PROCESS_INFORMATION pi;     memset(&si, 0x00, sizeof(si));// si整个设置为0     si.cb = sizeof(STARTUPINFO);// si的第一个字段cb初始化为sizoef(si)     si.wShowWindow = SW_SHOW;     if (CreateProcess(NULL, (LPTSTR)(LPCTSTR)strCmd, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi))     {         CloseHandle(pi.hThread);         CloseHandle(pi.hProcess);     }     

     

    注意上述两种si的初始化方式,si必须设置大小且其余字段设置为0


    最新回复(0)