C++ 调用命令行exe带参数程序

时间:2022-06-17 14:30:38

转载网址:http://blog.sina.com.cn/s/blog_76e94d210100vdj8.html

a.使用system函数

若用到很多参数,一般采用如下方法:
char s[300];
char* filename = "*****";
sprintf_s(s, "%s %s %s %s", "....**.exe", "aa", "bb", filename);
system(s);

system 的一般格式为:  system("teqc.exe meta");
缺陷:会出现命令行窗口。

b.用CreateProcess来执行dos命令,然后把是否隐藏窗口设为隐藏就可以了: 
一般采用如下示例方法
STARTUPINFO   si; 
PROCESS_INFORMATION   pi; 
ZeroMemory(   &si,   sizeof(si)   ); 
si.cb   =   sizeof(si); 
ZeroMemory(   &pi,   sizeof(pi)   ); 
si.dwFlags   =   STARTF_USESHOWWINDOW;     //设置隐藏执行窗口 
si.wShowWindow   =   SW_HIDE; 

CreateProcess(NULL,   "mkdir   d:/temp ",   NULL,   NULL,   FALSE,   0,   NULL,   NULL,   &si,  &pi);         //类似于system( "mkdir   d:\\temp "); 

c. CreateDirectory函数
//创建隐藏的文件夹

char szDirName[] = "C:\\WINDOWS\\system32\\huodian_clss_merge";
if( CreateDirectory(szDirName, NULL) ) //判断是否存在,否则创建
{
cout<<szDirName<<" : Not Exist"<<endl; 
SetFileAttributes(szDirName, FILE_ATTRIBUTE_HIDDEN ); //隐藏
cout<<"Create Successed!"<<endl;
}


测试文件夹是否创建成功:
BOOL t = PathFileExists("C:\\WINDOWS\\system32\\huodian_seg_shp");
if(t==1)
     cout<<"The dir is right."<<endl;
else
     cout<<"The dir is wrong."<<endl;