关于createprocess的使用

2024-11-29 08:43:25
推荐回答(1个)
回答1:

对于CreateProcess函数的后两个参数你不能简单的定义为NULL,你可以参看MSDN对这个函数的说明,倒数第二个参数必须要有你提供。它是一个STARTUPINFO结构体的指针,这个结构体对象一定要有你自己提供
最后一个参数你也必须自己提供,它是一个PROCESS_INFORMATION类型的指针
也就是:
STARTUPINFO st;
PROCESS_INFORMATION pi:
eroMemory(&si,sizeof(si));
si.cb=sizeof(si);
ZeroMemory(&pi,sizeof(pi));

然后调用函数CreateProcess("D:\\QQ\\Bin\\QQ.exe", NULL, NULL,NULL, NULL, NULL,NULL, NULL,&si,&pi);
或者CreateProcess(NULL,"D:\\QQ\\Bin\\QQ.exe", NULL, NULL,NULL, NULL, NULL,NULL, &si,&pi)
这样就可以了。
这样虽然可以正常的运行,但是最好的习惯是打开一个进程之后,我们要将该程序与进程断开连系,调用CloseHandle函数实现。