#include   <windows.h>   
main()   
  {   
      WinExec("whoami",SW_HIDE);  
  }   这段代码编译后还是会出现一个黑色的DOS窗口 ,有没有 在隐藏在后台运行的代码?

解决方案 »

  1.   

    把DOS命令写为bat文件
    再写一个VBS文件来执行bat文件
    再用你那个文件调用vbs文件这样就会悄悄在后台运行不过我觉得你直接把要运行的命令用程序直接写得了
      

  2.   

    1.用cmd.exe 来执行 /C
    2.不要调用exe,自己来实现对应的功能,然后程序隐藏,SW_HIDE等
      

  3.   

    呵呵,这问题好些人问过了。
    匿名管道吧CreateProcess, CreatePipe
      

  4.   

    貌似按楼主的意思是要隐藏程序
    隐藏程序的话只要ShowWindow(SW_HIDE); 就可以做到了
    至于如果是dos下bat文件想隐藏的话只要用Quick Batch File Compiler(BAT转换EXE工具)就可以隐藏了
      

  5.   

    #pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" )
    #include  <windows.h>  
    main()  
      {  
          
      }  
      

  6.   


    CString strCmd = _T("cmd whoami");
    STARTUPINFO s;
    s.dwFlags = STARTF_USESHOWWINDOW;
    s.wShowWindow = SW_HIDE;
    int ret=CreateProcess((LPCTSTR)str,NULL,NULL,NULL,NULL,NULL,NULL,NULL,&s,NULL);
      

  7.   

    应该是因为你的“whoami”里有输出信息,你把输出信息重定向到一个文件中就不会出出项命令行窗口了。
      

  8.   

    用CreateProcess来实现。然后用管道送一些命令过去。