//源代码如下,基本的功能可以实现,注释掉的代码可以用来实现输出的重定位,就不多解释了
//如果启动一个程序需要输出到单独的控制台窗口中,则CreateProcess函数的fdwCreate传入
//CREATE_NEW_CONSOLE即可
#include<stdio.h>
#include <windows.h>
void main()
{
char cmd[200];
STARTUPINFO si={sizeof(si)};
SECURITY_ATTRIBUTES saProcess, saThread;
PROCESS_INFORMATION piProcessB;
//HANDLE f = CreateFile(("c:\\a.txt"), GENERIC_READ|GENERIC_WRITE, FILE_SHARE_WRITE, NULL,OPEN_ALWAYS, NULL, NULL);
//SetStdHandle(STD_OUTPUT_HANDLE, f);
while(TRUE)
{
printf("%请输入需要执行的命令:");
gets(cmd);
if(strcmp(cmd,"exit")==0)
break;
saProcess.nLength = sizeof(saProcess);
saProcess.lpSecurityDescriptor = NULL;
saProcess.bInheritHandle = FALSE;
saThread.nLength = sizeof(saThread);
saThread.lpSecurityDescriptor = NULL;
saThread.bInheritHandle = FALSE;
if(CreateProcess(NULL, cmd, &saProcess, &saThread, FALSE, 0, NULL, NULL,&si, &piProcessB))
{
WaitForSingleObject(piProcessB.hProcess,INFINITE);
printf("\n");
}
else
printf("找不到这个命令!\n");
}
//CloseHandle(f);
}