A进程CreateProcess了B进程,A怎么知道B已经退出了?
解决方案 »
- 如何隔一段时间改变树形控件里某个节点的文件夹图标的颜色
- 如何用VC获取pdf文件的摘要信息?
- 请问如何用vc++的代码给一个pdf添加书签?
- 为什么我在CDelRecMain类中不能得到CDelRecordDlg类中的public成员变量的值
- 打.后的参数不能显示了
- 自绘控件背景为什么会与父窗口VIEW背景色相叠加?
- m_oTooltip.RelayEvent(&msg)为何响应了并未显示工具栏提示?
- 如何能够不帮定数据库使用DataGrid的功能?
- question about CDC::fillpath
- 高手们请帮我找找错,一个下载文件的问题
- ODBC调用存储过程的问题
- 在MFC中如何调用cmd.exe程序,并可以传递一些命令行参数
The process’s termination status (which is returned by GetExitCodeProcess) changes from its initial value of STILL_ACTIVE to the termination status of the last thread to terminate.
The thread object of the main thread is set to the signaled state, satisfying any threads that were waiting on the object.
The process object is set to the signaled state, satisfying any threads that were waiting on the object.
我用WaitForSingleObject(pi.hProcess,INFINITE);等待的时候,马上就返回了,
我猜测是这样的:这个安装程序启动了Setupfactory程序,然后自己就退出了,接下来由Setupfactory程序来负责安装,这样等待马上就结束了,而安装程序还在运行.
我现在用定时去检测
2、在Create系列函数中通常都会有一个叫SECURITY_ATTRIBUTES的参数,比如:SECURITY_ATTRIBUTES sa; sa.nLength = sizeof(SECURITY_ATTRIBUTES);sa.lpSecurityDescriptor = NULL;sa.bInheritHandle = TRUE;
如果把bInheritHandle的值设为TRUE,意思就是它所创建出来的东西是可以被其他的子进程使用的,例如用CreatePipe创建的管道可以用在CreateProcess创建的进程中。3、用CreateProcess创建子进程时通过lpCurrentDirectory参数指定子进程运行的路径
what is 线程
LPSTARTUPINFOA lpStartupInfo;
CreateProcess(
PCSTR lpApplicationName,//可执行文件
PSTR lpCommandLine,//传递给新进程的字符 (可以设置NULL)
PSECURITY_ATTRIBUTES lpProcessAttributes,//进程安全属性(可以设置NULL)
PSECURITY_ATTRIBUTES lpThreadAttributes,//线程安全属性(可以设置NULL,表示系统默认属性)
BOOL bInheritHandles,//继承性(在这里实质False)
DWORD dwCreationFlags,//规定如何创建线程(可设置NULL)
PVOID lpEnvironment,//环境字符串的内存(继续为NULL)
LPCSTR lpCurrentDirectory,//父进程实质子进程的当前驱动和目录(继续为NULL)
&lpStartupInfo,//这个很重要的,不能为NULL
LPPROCESS_INFORMATION lpProcessInformation//为空
);
我用WaitForSingleObject(pi.hProcess,INFINITE);等待的时候,马上就返回了,
我猜测是这样的:这个安装程序启动了Setupfactory程序,然后自己就退出了,接下来由Setupfactory程序来负责安装,这样等待马上就结束了,而安装程序还在运行.
我现在用定时去检测