#include <windows.h>
#include <string.h>
#include <stdio.h>
int main(int argc, char* argv[])
{
char szCommandLine[] = "cmd";
STARTUPINFO si = {sizeof(si)};
BOOL bRet;
PROCESS_INFORMATION pi;
//指定显示ShowWindows有效
si.dwFlags = STARTF_USESHOWWINDOW;
si.wShowWindow = TRUE;
bRet = CreateProcess(
NULL, //不在此指定可执行文件的文件名
szCommandLine, //命令行参数
NULL, //默认进程安全性
NULL, //默认线程安全性
FALSE, //当前进程内的句柄不可以被子进程继承
CREATE_NEW_CONSOLE, //为新进程创建一个新的控制台窗口
NULL, //使用本进程的环境变量
NULL, //使用本进程的驱动器和目录
&si, //父进程传给子进程的一些信息
&pi); //保存新进程信息的结构
if(bRet)
{
//不使用两个句柄,最好立刻关闭
CloseHandle(pi.hThread);
CloseHandle(pi.hProcess);
printf("新进程的进程ID号是:%d/n",pi.dwProcessId);
printf("新进程的主线程ID号是:%d/n",pi.dwThreadId);
}
return 0;
}