C/C++/VC++/MFC怎样通过代码运行Dos窗口或以管理员身份运行DOS窗口,并执行一条指令或命令参数

如果要以管理员身份运行的话:就要以管理员身份运行VC++6.0等开发平台。

运行一个DOS命令并立即返回
   ShellExecute(NULL, "open","command.com", "/c copy file1.txt  file2.txt", NULL, SW_SHOW);
运行一个DOS命令并保持DOS窗口存在
   ShellExecute(NULL, "open","command.com", "/k copy file1.txt  file2.txt", NULL, SW_SHOW);

/C:立即返回,/K 保持存在 ;   copy file1.txt  file2.txt:是dos命令,百度可以搜索都是命令大全

该方式可以通过ShellExecuteEx一样做:

char cmdstring[200]="/k netsh wlan start hostednetwork";//命令行参数,启动无线无线网路
    
    SHELLEXECUTEINFO   ShExecInfo   =   {0};  
    ShExecInfo.cbSize   =   sizeof(SHELLEXECUTEINFO);  
    ShExecInfo.fMask   =   SEE_MASK_NOCLOSEPROCESS;  
    ShExecInfo.hwnd   =   NULL;  
    ShExecInfo.lpVerb   =   NULL;  
    ShExecInfo.lpFile   =   "cmd";
 
    ShExecInfo.lpParameters   =   cmdstring;   //可以加参数        
    ShExecInfo.lpDirectory   =   NULL;  
    ShExecInfo.nShow   =   SW_SHOW;  
    ShExecInfo.hInstApp   =   NULL;          
    ShellExecuteEx(&ShExecInfo); 
    printf("start test\n");
    WaitForSingleObject(ShExecInfo.hProcess,INFINITE); 
    printf("end test\n");

你可能感兴趣的:(C/C++/VC++/MFC怎样通过代码运行Dos窗口或以管理员身份运行DOS窗口,并执行一条指令或命令参数)