2011-12-01 94 views

回答

6

您可以使用GetModuleFileName獲取可執行文件的路徑,無論它安裝在什麼地方,甚至可以稍後移動。然後您可以PathRemoveFileSpec刪除可執行文件的名稱(或strchr()和朋友,如果您要支持早於Windows 2000的版本)。

+1

+1正確答案 –

5

SHGetSpecialFolderPath(CSIDL_PROGRAM_FILES)至少會提供程序文件目錄的路徑。您必須處理添加路徑和文件名的其餘部分。

+0

你還是不知道的軟件實際安裝。所有你知道的是程序文件文件夾,但我們知道它可能被安裝在C:\ i-cut \ – pezcode

+0

@pezcode:至少根據標題(其餘部分似乎適合這個),他基本上只是看用於'Program Files'與'Program files(x86)'。 –

-3

可以使用環境變量是:

#include <stdio.h> 
#include <stdlib.h> 

int _tmain(int argc, _TCHAR* argv[]) 
{ 
char* programFiles = getenv("ProgramFiles(x86)"); 
if (programFiles==NULL) 
{ 
    programFiles = getenv("ProgramFiles"); 
} 

printf(programFiles); 

return 0; 
} 
+0

這是錯誤的。始終使用ProgramFiles,切勿使用ProgramFiles(x86) - WOW64文件系統重定向將負責翻譯。 –

相關問題