作者MOONY135 (谈无慾)
看板C_and_CPP
标题[问题] ShellExecute问题
时间Sat Oct 8 13:37:19 2016
开发平台(Platform): (Ex: VC++, GCC, Linux, ...)
VS2015
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
QT
问题(Question):
ShellExecute参数问题
喂入的资料(Input):
想用ShellExecute去打开EXE
但发现写法会让程式无法正确开启
查完MSDN之後不知道问题出在哪
ShellExecute(NULL, L"open", L"TEST.exe", NULL, L"D:\\USER324", SW_SHOWNORMAL);
//这个可以正常运作
ShellExecute(NULL, L"open",L"D:\\USER324\\TEST.exe", NULL, NULL,SW_SHOWNORMAL);
//这个会不完整打开EXE
问题出在
lpFile[输入]
类型:LPCTSTR
一个指向指定要执行指定动词的文件或对象的空终止字符串。要指定一个Shell命名空间
对象,通过完全合格的解析名称。注意,并非所有动词都支持的所有对象。例如,不是所
有的文档类型支持“打印”动词。如果相对路径用於lpDirectory参数不要使用lpFile相
对路径。
lpDirectory[中,可选]
类型:LPCTSTR
一个指向指定了操作的默认(工作)目录空结尾的字符串。如果该值为NULL,则使用当前
的工作目录。如果在lpFile提供了一个相对路径,不要使用lpDirectory相对路径。
我第二个做法lpFile给了绝对路径,然後lpDirectory给NULL
理论上应该是跟第一种作法是一模一样的吧?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.25.223.125
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1475905041.A.136.html
1F:→ TobyH4cker: 「无法正确开启、不完整打开EXE」可以说明清楚吗? 10/08 17:55
2F:→ TobyH4cker: 水晶球说你程式有打开可是运作不正常这样? 10/08 17:55
3F:→ MOONY135: 没有完整抓到图档 10/08 19:35
4F:→ EdisonX: 你的图档的路径是在??有和 lpDirectionory 相依 ? 10/10 00:07
5F:→ MOONY135: 图档在L"D:\\USER324 也就是目前运行的EXE的上一层 10/10 17:31
6F:→ TobyH4cker: USER324是跟EXE同一层吧 10/11 18:23
7F:→ TobyH4cker: 哦的上一层所以是D:就是了 10/11 18:24
8F:→ TobyH4cker: 答案很明显吧 10/11 18:24
9F:→ TobyH4cker: Working Directory 10/11 18:25
10F:→ MOONY135: 感恩 10/11 20:54