【问题标题】:IIS and Delphi - Get the application folder inside ISAPIIIS 和 Delphi - 获取 ISAPI 中的应用程序文件夹
【发布时间】:2011-12-09 06:56:12
【问题描述】:

在 IIS 上运行 ISAPI 应用程序时,如果我们在 ISAPI 中调用 ParamStr(0)Application.ExeName,我们将获得安装 IIS 的文件夹 (C:\windows...)。

有什么方法可以获取包含我的 ISAPI 而不是 IIS 的应用程序文件夹的文件夹路径?

【问题讨论】:

标签: delphi iis isapi


【解决方案1】:

您的 ISAPI 应用程序是一个库 (DLL),因此您可以使用此方法获取其文件夹:

ExtractFilePath(GetModuleName(HInstance))

如果您不需要最后一个反斜杠,请使用 ExtractFileDir() 而不是 ExtractFilePath()

理由:根据 Delphi 文档,

在系统单元中声明的几个变量对那些编程库特别感兴趣。 ...在库的生命周期中,HInstance 包含其实例句柄。

使用 GetModuleName() 可以获得该 DLL 的文件名。另一方面,ParamStr(0) 包含此 DLL 已加载到的主 EXE 的名称。

【讨论】:

  • 是的 .. 它似乎有效,但我在路径的开头得到了一些不应该存在的字符,例如 `\\?\C:\inetpub\wwwroot`。
  • 您可以继续使用此路径。它将适用于所有意图和目的。您也可以尝试使用 ExpandFileName() 并查看它是否将路径更改为更常见的变体。
猜你喜欢
  • 1970-01-01
  • 2013-09-15
  • 1970-01-01
  • 2012-11-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-31
相关资源
最近更新 更多