2010-10-27 48 views
0

...即使用戶通過雙擊不同於可執行文件的目錄中的關聯文件來打開應用程序。我一直使用ExtractFilePath(Application.EXEName),但是這個函數在這種情況下不能像希望的那樣工作。什麼代碼會讓我找到編譯的可執行文件的目錄?

+2

它絕對應該工作。 – 2010-10-27 21:47:16

+0

'ExtractFilePath(Application.EXEName)'應該可以工作。它做錯了什麼? – 2010-10-27 22:00:04

+0

難道Vista和Win7不允許讀取或操作\ ProgramFiles內的文件嗎? (我很抱歉,我現在沒有與我有關的實際錯誤信息...用戶在其他地方)。 – 2010-10-27 22:10:14

回答

0

另請嘗試使用ParamStr(0)。當application.exename不適用時,這可能會起作用嗎?

+3

這正是'ExeName'屬性返回的內容。 – 2010-10-27 22:42:24

5

ExeName回報ParamStr(0)這反過來又返回由GetModuleFileNamehModule集合產生的爲0。我看不出有任何理由爲什麼這不會在一個正常的應用程序中工作的字符串。

0

ExePath:= ExtractFilePath(paramstr(0));

我一直這樣做,並且它總是可以工作,無論它在哪個操作系統上運行。

相關問題