写了一个简单的模拟Windows的cmd.e…

来源:互联网 发布:淘宝详情页模版下载 编辑:程序博客网 时间:2024/05/11 04:56

//源代码如下,基本的功能可以实现,注释掉的代码可以用来实现输出的重定位,就不多解释了

//如果启动一个程序需要输出到单独的控制台窗口中,则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); 
}

0 0
原创粉丝点击