windows编程->进程创建
来源:互联网 发布:用php写一个登录页面 编辑:程序博客网 时间:2024/06/17 12:15
创建进程函数:
BOOL CreateProcess( PCTSTR pszApplicationName, PTSTR pszCommandLine, PSECURITY_ATTRIBUTES psaProcess, PSECURITY_ATTRIBUTES psaThread, BOOL bInheritHandles, DWORD fdwCreate, PVOID pvEnvironment, PCTSTR pszCurDir, PSTARTUPINFO psiStartInfo, PPROCESS_INFORMATION ppiProcInfo);当一个线程调用CreateProcess时,系统就会创建一个进程内核对象,其初始使用计数是1 。该进程内核对象不是进程本身,而是操作系统管理进程时使用的一个较小的数据结构。可以将进程内核对象视为由进程的统计信息组成的一个较小的数据结构。然后,系统为新进程创建一个虚拟地址空间,并将可执行文件或任何必要的D L L 文件的代码和数据加载到该进程的地址空间中。然后,系统为新进程的主线程创建一个线程内核对象(其使用计数为1 )。与进程内核对象一样,线程内核对象也是操作系统用来管理线程的小型数据结构。通过执行C / C + +运行期启动代码,该主线程便开始运行,它最终调用Wi n M a i n 、w Wi n M a i n 、m a i n 或w m a i n 函数。如果系统成功地创建了新进程和主线程,C r e a t e P r o c e s s 便返回T R U E 。
创建子进程实例:
void test2(){STARTUPINFO si = { sizeof(si) }; PROCESS_INFORMATION pi; si.dwFlags = STARTF_USESHOWWINDOW; si.wShowWindow = TRUE; //TRUE表示显示创建的进程的窗口 TCHAR cmdline[] =TEXT("c://program files//internet explorer//iexplore.exe http://blog.csdn.net/sunboyiris"); BOOL bRet = ::CreateProcess ( NULL, cmdline, //在Unicode版本中此参数不能为常量字符串,因为此参数会被修改 NULL, NULL, FALSE, CREATE_NEW_CONSOLE, NULL, NULL, &si, &pi); int error = GetLastError(); if(bRet) { ::CloseHandle (pi.hThread); ::CloseHandle (pi.hProcess); printf(" 新进程的进程ID号:%d /n", pi.dwProcessId); printf(" 新进程的主线程ID号:%d /n", pi.dwThreadId); } else { printf("error code:%d/n",error ); } }
PROCESS_INFORMATION pi;DWORD dwExitCode;//Spawn the child processBOOL fSuccess = CreateProcess(... , &pi);if(fSuccess){ /*close the thread handle as soon as it is no longer needed!*/ CloseHandle(pi.hThread); /*Suspend our execution until the child has terminate.*/ WaitForSingleObject(pi.hProcess,INFINITE); /*The child process terminate;get its exit code.*/ GetExitCodeProcess(pi.hProcess,&dwExitCode); /*Close the process handle as soon as it is no longer needed.*/ CloseHandle(pi.hProcess);}创建子进程也可参照以上模式。
0 0
- windows编程->进程创建
- Windows编程-进程的创建
- 创建进程CreateProcess函数----windows 核心编程
- windows核心编程-CreateProcess创建进程
- Windows 2000系统编程——进程的创建
- Windows 2000系统编程——进程的创建
- Windows 2000系统编程——进程的创建
- 创建进程CreateProcess函数---------《windows核心编程》读书笔记(3)
- Windows核心编程(四)进程的创建与终止
- Windows并发&异步编程(0)创建、终止进程
- Windows并发&异步编程(0)创建、终止进程
- Windows进程的创建
- Windows的进程创建
- Windows版进程创建
- Windows的进程创建
- 创建进程windows
- windows 创建子进程
- Windows创建进程
- A + B Problem(I~VIII打包,无聊之作)
- gcc编译器------前后端的纽带:遍(pass)管理器
- java解惑之长整除
- 退出,清空cookie
- POJ Coins
- windows编程->进程创建
- hdu 2108 Shape of HDU(判断多边形是凸凹边形)
- 利用PHPExcel转Excel柱形图
- 33. 归并排序(迭代)
- Hadoop准备
- 非数值数据的表示以及十进制数的二进制编码(BCD)表示
- 几种常见的虚拟镜像类型
- NBUT 1557 Team of Slime
- java试题(5)--Java如何获得平台相关的行分隔符、路径分隔符?