如何传递一字符串给子进程(打开的同时传递)

zjli_stong 2006-05-25 10:28:51
我希望在主程序中打开一单文档程序,并传递字符串如“Open"给单文档程序,该如何实现?
我用CreateProcess来实现,如 if(!CreateProcess("C:\\abc.exe"," Open",NULL,NULL,FALSE,0,NULL,NULL,&StupInfo,&ProcInfo)),但是在abc.exe虽然可以获得Open这个字符串,但程序提示找不到Open文件.
而实际上我只是想传递一个字符串给该单文档程序,然后自己处理.那么该如何做?
...全文
191 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
xxhfortrue 2006-06-06
  • 打赏
  • 举报
回复
参数传过去就行了
zjli_stong 2006-06-06
  • 打赏
  • 举报
回复
应该加多一斜杠就可以了,如:
if(!CreateProcess("C:\\abc.exe"," /Para",
NULL,NULL,FALSE,0,NULL,NULL,&StupInfo,&ProcInfo))
mythay 2006-05-26
  • 打赏
  • 举报
回复
不过前提是你的abc.exe能够处理参数
mythay 2006-05-26
  • 打赏
  • 举报
回复
应该这样CreateProcess("C:\\abc.exe [file name]","就成了
vc_asm 2006-05-25
  • 打赏
  • 举报
回复
使用命令行参数即可,比如,abc.exe /cmd 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;
}
}
}

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧