作者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/m.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