2011-12-01 126 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文件系统重定向将负责翻译。 –

相关问题