win2api 创建进程简介

下一篇:句柄详情
看这些东西你得会c的结构体以及指针,不然你是看天书的

直接上原函数

BOOL CreateProcess(
  LPCTSTR lpApplicationName,                 // name of executable module
  LPTSTR lpCommandLine,                      // command line string
  LPSECURITY_ATTRIBUTES lpProcessAttributes, // SD
  LPSECURITY_ATTRIBUTES lpThreadAttributes,  // SD
  BOOL bInheritHandles,                      // handle inheritance option
  DWORD dwCreationFlags,                     // creation flags
  LPVOID lpEnvironment,                      // new environment block
  LPCTSTR lpCurrentDirectory,                // current directory name
  LPSTARTUPINFO lpStartupInfo,               // startup information
  LPPROCESS_INFORMATION lpProcessInformation // process information);

看着确实有点恐怖,但是看过上一篇的基本都知道咋回事,按住ctrl鼠标点进去就知道咋回事了,
本篇介绍3个参数,第一个执行模块的名字,倒数第二个启动信息,最后一个进程信息,
第一个参数:一干到底点进来是个wchar指针的,其实就是程序的路径,这样即可在这里插入图片描述倒数第二si:这两个是必须的参数,单数可以不给值,所以弄个结构体变量就行,结构体原型是这,我也没搞清楚参数有啥用

typedef struct _STARTUPINFO { 
    DWORD   cb; 
    LPTSTR  lpReserved; 
    LPTSTR  lpDesktop; 
    LPTSTR  lpTitle; 
    DWORD   dwX; 
    DWORD   dwY; 
    DWORD   dwXSize; 
    DWORD   dwYSize; 
    DWORD   dwXCountChars; 
    DWORD   dwYCountChars; 
    DWORD   dwFillAttribute; 
    DWORD   dwFlags; 
    WORD    wShowWindow; 
    WORD    cbReserved2; 
    LPBYTE  lpReserved2; 
    HANDLE  hStdInput; 
    HANDLE  hStdOutput; 
    HANDLE  hStdError; 
} STARTUPINFO, *LPSTARTUPINFO; 

倒数第三个pi:这是一个out参数,也就是说是输出的参数,只能取不能传,随意改动pid和线程ip显然不正常id也是唯一标识的,原型是以下结构体,进程线程id和进程线程句柄(下节讲句柄)

typedef struct _PROCESS_INFORMATION { 
    HANDLE hProcess; 
    HANDLE hThread; 
    DWORD dwProcessId; 
    DWORD dwThreadId; 
} PROCESS_INFORMATION; 

写好启动信息和进程信息的结构体,可以随便给几个值玩玩,突然发现有点像python,

STARTUPINFO si;
    PROCESS_INFORMATION pi;
    ZeroMemory(&pi, sizeof(pi));
    ZeroMemory(&si, sizeof(si));
    si.cb = sizeof(si);
    si.dwX = 1;
    si.dwY = 1;
    pi.dwProcessId = 1;

最终写好参数就可以用这个启动那个程序的进程了
在这里插入图片描述下一篇讲讲其他参数
下一篇:句柄详情

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值