CreateProcess

来源:互联网 发布:手机淘宝取消合并付款 编辑:程序博客网 时间:2024/05/16 03:30
#include <windows.h>#include <stdio.h>int main (void){STARTUPINFO si={0};GetStartupInfo(&si);si.wShowWindow=SW_SHOW;//不能隐藏显示是因为,获取启动信息失败PROCESS_INFORMATION pi={0};pi.hProcess=0;//返回一个句柄当新的进程pi.hThread=0; //返回一个新的进程的主线程pi.dwProcessId=0;//返回一个进程标示符pi.dwThreadId=0; //返回一个线程标示符BOOL b=CreateProcess(NULL, //使用命令行TEXT("NOTEPAD.EXE"),        //命令行NULL,                   //不继承进程句柄NULL,                   // 不继承线程句柄FALSE,                  // 不继承句柄CREATE_SUSPENDED,      // 没有创建标志, 0表示立即执行 CREATE_SUSPENDED表示暂停NULL,                   // 使用父进程环境变量NULL,                   // 使用父进程目录作为当前目录&si,                    // STARTUPINFO 结构&pi                    // PROCESS_INFORMATION 保存相关信息);ResumeThread(pi.hThread);//激活被暂停状态执行的进程if (b){printf("成功\n");}else{printf("失败\n");}// 在创建成功后父进程也可直接退出,这里等待子进程执行结束// 等待子进程结束// 使用到了通过PROCESS_INFORMATION 返回的相关信息,hProcess为子进程句柄// 父进程也可以不等待子进程运行完成而直接退出WaitForSingleObject( pi.hProcess, INFINITE );// 关闭进程句柄和线程句柄CloseHandle( pi.hProcess );CloseHandle( pi.hThread );return 0;}

0 0
原创粉丝点击