我希望在主程序中打开一单文档程序,并传递字符串如“Open"给单文档程序,该如何实现?
我用CreateProcess来实现,如 if(!CreateProcess("C:\\abc.exe"," Open",NULL,NULL,FALSE,0,NULL,NULL,&StupInfo,&ProcInfo)),但是在abc.exe虽然可以获得Open这个字符串,但程序提示找不到Open文件.
而实际上我只是想传递一个字符串给该单文档程序,然后自己处理.那么该如何做?
我用CreateProcess来实现,如 if(!CreateProcess("C:\\abc.exe"," Open",NULL,NULL,FALSE,0,NULL,NULL,&StupInfo,&ProcInfo)),但是在abc.exe虽然可以获得Open这个字符串,但程序提示找不到Open文件.
而实际上我只是想传递一个字符串给该单文档程序,然后自己处理.那么该如何做?
在abc程序中,看到/表示是一个参数的开始,看到cmd表示是cmd选项,open表示是/cmd的选项值看看我的例子:
LPTSTR lpszDestPathName(NULL);
LPTSTR lpszSyncS(NULL),lpszSyncT(NULL);
int nArgc = __argc -1;
PCTSTR *ppArgv = (PCTSTR*) __argv;
CMDPARAM param=en_Other;
for (int i = 1; i <= nArgc; i++){
if ((ppArgv[i][0] == TEXT('-')) || (ppArgv[i][0] == TEXT('/'))){
// Command line switch
if (lstrcmpi(&ppArgv[i][1], TEXT("copyrun")) == 0){
param=en_DestPathName;
}else if (lstrcmpi(&ppArgv[i][1], TEXT("syncS")) == 0){
param=en_SyncS;
}else if (lstrcmpi(&ppArgv[i][1], TEXT("syncT")) == 0){
param=en_SyncT;
}else if (lstrcmpi(&ppArgv[i][1], TEXT("Run")) == 0){
m_bRun=true;
}else{
param=en_Other;
}
}else{
switch(param){
case en_DestPathName:
lpszDestPathName=(LPTSTR)ppArgv[i];
break;
case en_SyncS:
lpszSyncS=(LPTSTR)ppArgv[i];
break;
case en_SyncT:
lpszSyncT=(LPTSTR)ppArgv[i];
break;
}
}
}
if(!CreateProcess("C:\\abc.exe"," /Para",
NULL,NULL,FALSE,0,NULL,NULL,&StupInfo,&ProcInfo))