1. 创建进程,调用CreateProcess
函数原形:
BOOL CreateProcess
(
LPCTSTR lpApplicationName, //执行程序文件名
LPTSTR lpCommandLine, //参数行
LPSECURITY_ATTRIBUTES lpProcessAttributes, //进程安全参数
LPSECURITY_ATTRIBUTES lpThreadAttributes, //线程安全参数
BOOL bInheritHandles, //继承标志
DWORD dwCreationFlags, //创建标志
LPVOID lpEnvironment, //环境变量
LPCTSTR lpCurrentDirectory, //运行该子进程的初始目录
LPSTARTUPINFO lpStartupInfo, //创建该子进程的相关参数
LPPROCESS_INFORMATION lpProcessInformation //创建后用于被创建子进程的信息
) ;
2. 结束进程
有4种方法:
(1) 主线程的进入点函数返回. ---------最好方法
(2) 进程中的一个线程调用ExitProcess. -------避免使用
ExitProcess不会返回任何值,因为进程已终止,在ExitProcess之后编写的任何代码将不会运行.不过在进入点函数中调用ExitThread,而不调用ExitProcess或者仅仅是返回,那么应用程序的主线程将停止运行;但是如果进程中还有其它一个线程在运行,那么这个进程就不会停止.
(3) 另一个进程中的线程调用TerminateProcess.----避免使用
任何一个线程都可以调用TerminateProcess来终止其它进程或者自己的进程.最好没有其它的方式来终止进程的时候才调用这个函数.因为将被终止运行的进程得不到任何关于将被终止的通知,并且不能避免自己被撤消.
(4) 进程中的所有线程自行终止运行. --------几乎未发生