创建进程

一、所需函数原型

函数原型

 

 
1
2
3
4
5
6
7
8
9
10
11
12
13
BOOL  CreateProcess
(
LPCTSTR  lpApplicationName,//对象名称
LPTSTR  lpCommandLine,//命令行
LPSECURITY_ATTRIBUTES lpProcessAttributes,
LPSECURITY_ATTRIBUTES lpThreadAttributes,
BOOL  bInheritHandles,
DWORD  dwCreationFlags,
LPVOID  lpEnvironment,
LPCTSTR  lpCurrentDirectory,
LPSTARTUPINFO lpStartupInfo,
LPPROCESS_INFORMATIONlpProcessInformation
);

STARTUPINFO用于指定新进程的主窗口特性的一个结构。(IN参数)

 主要存储创建子进程的各种详细信息
BOOL CreateChildProcess(PTCHAR szChildProcessName, PTCHAR szCommandline) //创建子进程
{
    STARTUPINFO si;
    PROCESS_INFORMATION pi;

    ZeroMemory(&pi, sizeof(pi));
    ZeroMemory(&si, sizeof(si));

    si.cb = sizeof(si); //这个结构体里面的必填项
    if (!CreateProcess(
        szChildProcessName,        //对象名称    
        szCommandline,            //命令行
        NULL,                    //不继承进程句柄
        NULL,                    //不继承线程句柄
        FALSE,                    //不继承句柄
        0,                        //没有创建标志
        NULL,                    //使用父进程环境变量
        NULL,                    //使用父进程目录作为当前目录
        &si,                    //STARTUOINFOW结构体
        &pi

    ))
    {


    }

}

PROCESS_INFORMATION  (OUT参数)

PROCESS_INFORMATION 结构

typedef struct_PROCESS_INFORMATION{
HANDLE hProcess;
HANDLE hThread;
DWORD dwProcessId;
DWORD dwThreadId;
}PROCESS_INFORMATION;
其中成员含义如下。
① hProcess:返回新进程的句柄。
② hThread:返回 主线程的句柄。
③ dwProcessId:返回一个全局进程 标识符。该标识符用于标识一个进程。从进程被
创建到终止,该值始终有效。
④ dwThreadId:返回一个全局 线程标识符。该标识符用于标识一个线程。从线程被创
建到终止,该值始终有效。

猜你喜欢

转载自www.cnblogs.com/hanhandaren/p/11116215.html