在IIS上运行ISAPI应用程序时,如果我们在ISAPI中调用ParamStr(0)
或Application.ExeName
,我们将获得安装IIS的文件夹(C:\ windows ...)。
有没有办法获取包含我的ISAPI而不是IIS的应用程序文件夹的文件夹路径?
答案 0 :(得分:6)
您的ISAPI应用程序是一个库(DLL),因此您可以使用此方法获取其文件夹:
ExtractFilePath(GetModuleName(HINSTANCE))
如果您不需要最后一个反斜杠,请使用ExtractFileDir()
代替ExtractFilePath()
。
理由:根据Delphi文档,
系统单元中声明的几个变量对那些编程库特别感兴趣。 ...在库的生命周期中,HInstance包含其实例句柄。
使用GetModuleName()可以获得该DLL的文件名。另一方面,ParamStr(0)包含已加载此DLL的主EXE的名称。