ShellExecute()执行不正确 我用ShellExecute()打开一个exe文件。执行完毕返回值为42,按照MSDN上所说说明已经执行正确,该exe文件就应该打开了,但实际结果却没有,请问这是为什么呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 exe文件单独执行没问题代码如下: HINSTANCE hInstance = ShellExecute(NULL, "open", "C:\\Program Files\\kingview\\Touchvew.exe", NULL, NULL, SW_SHOW); int nTmp = (int)hInstance; CString strTmp; strTmp.Format("the return value is %d", nTmp); if(nTmp <= 32) { switch(nTmp) { case 0: MessageBox("内存不足!", "Infermation", MB_OK|MB_ICONWARNING); break; case 2: MessageBox("文件名错误!", "Infermation", MB_OK|MB_ICONWARNING); break; case 3: MessageBox("路径名错误!", "Infermation", MB_OK|MB_ICONWARNING); break; case 11: MessageBox("EXE 文件无效!", "Infermation", MB_OK|MB_ICONWARNING); break; case 26: MessageBox("发生共享错误!", "Infermation", MB_OK|MB_ICONWARNING); break; case 27: MessageBox("文件名不完全或无效!", "Infermation", MB_OK|MB_ICONWARNING); break; case 28: MessageBox("超时!", "Infermation", MB_OK|MB_ICONWARNING); break; case 29: MessageBox("DDE 事务失败!", "Infermation", MB_OK|MB_ICONWARNING); break; case 30: MessageBox("正在处理其他 DDE 事务而不能完成该 DDE 事务!", "Infermation", MB_OK|MB_ICONWARNING); break; case 31: MessageBox("没有相关联的应用程序!", "Infermation", MB_OK|MB_ICONWARNING); break; default: break; } } else MessageBox(strTmp, MB_OK); 用CreateProcess执行结果也一样,被调用的exe程序就是打不开,郁闷... 还有就是Program Files这个的空格,换个不带空格的路径shell一下试试 看看任务管理器中 是否已经有了 Touchvew.exe 进程 hellExecute (hwndapp, "open", "NOTEPAD.EXE", "README.TXT", "C:/VIEWER",1) 单/ "C:\\Program Files\\kingview\\Touchvew.exe"是不是路径的问题?? 用system试试system("\"C:\\Program Files\\kingview\\Touchvew.exe\""); HINSTANCE hInstance = ShellExecute(this->m_hWnd, _T("open"), _T("notePad.exe"), NULL,NULL,SW_SHOW);我运行了,没有错误! 谢谢各位,找到原因了这个exe程序必须由特定名称的文件才可以打开比如:1.exe 只能由2.exe才行,名称换成3.exe就打不开1.exe了 直接在地址栏里面 连接到这个路径试试能打开吗 C:\Program Files\kingview\Touchvew.exe 单独运行没问题,即直接在地址栏里面 连接到这个路径C:\Program Files\kingview\Touchvew.exe可以运行 strcpy这样用为什么不行呢? 怎么创建像属性表单一样的视图 C#(客户端)中怎样远程调用服务器端的dll 如何向自己编写的IE工具条上添加按钮、文本框之类的控件呢? 学习VC带来的的困惑 救命阿,哪位有photoshop的rgb转lab的算法?工作急用阿 播放*.asf文件 求《XML编程从入门到精通》书的配套源码 如何拦截API 我用MFC编程做一个多文档 用什么函数返回主窗口句柄和多个子窗口的句柄? 发送F1消息给QQ程序 如何在关闭CDocument事件中添加方法
strTmp.Format("the return value is %d", nTmp); if(nTmp <= 32)
{
switch(nTmp)
{
case 0:
MessageBox("内存不足!", "Infermation", MB_OK|MB_ICONWARNING);
break;
case 2:
MessageBox("文件名错误!", "Infermation", MB_OK|MB_ICONWARNING);
break;
case 3:
MessageBox("路径名错误!", "Infermation", MB_OK|MB_ICONWARNING);
break;
case 11:
MessageBox("EXE 文件无效!", "Infermation", MB_OK|MB_ICONWARNING);
break;
case 26:
MessageBox("发生共享错误!", "Infermation", MB_OK|MB_ICONWARNING);
break;
case 27:
MessageBox("文件名不完全或无效!", "Infermation", MB_OK|MB_ICONWARNING);
break;
case 28:
MessageBox("超时!", "Infermation", MB_OK|MB_ICONWARNING);
break;
case 29:
MessageBox("DDE 事务失败!", "Infermation", MB_OK|MB_ICONWARNING);
break;
case 30:
MessageBox("正在处理其他 DDE 事务而不能完成该 DDE 事务!", "Infermation", MB_OK|MB_ICONWARNING);
break;
case 31:
MessageBox("没有相关联的应用程序!", "Infermation", MB_OK|MB_ICONWARNING);
break;
default:
break;
}
}
else
MessageBox(strTmp, MB_OK);
是不是路径的问题??
system("\"C:\\Program Files\\kingview\\Touchvew.exe\"");
我运行了,没有错误!
C:\Program Files\kingview\Touchvew.exe