[問題] ShellExecute問題

作者: MOONY135 (談無慾)   2016-10-08 13:37:19
開發平台(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
理論上應該是跟第一種作法是一模一樣的吧?
作者: TobyH4cker (Toby (我要當好人))   2016-10-08 17:55:00
「無法正確開啟、不完整打開EXE」可以說明清楚嗎?水晶球說你程式有打開可是運作不正常這樣?
作者: MOONY135 (談無慾)   2016-10-08 19:35:00
沒有完整抓到圖檔
作者: EdisonX (卡卡獸)   2016-10-10 00:07:00
你的圖檔的路徑是在??有和 lpDirectionory 相依 ?
作者: MOONY135 (談無慾)   2016-10-10 17:31:00
圖檔在L"D:\\USER324 也就是目前運行的EXE的上一層
作者: TobyH4cker (Toby (我要當好人))   2016-10-11 18:23:00
USER324是跟EXE同一層吧哦的上一層所以是D:就是了答案很明顯吧Working Directory
作者: MOONY135 (談無慾)   2016-10-11 20:54:00
感恩

Links booklink

Contact Us: admin [ a t ] ucptt.com