例如:我把webservice放在"e:\aa"下面,然后通过IIS建立虚拟目录来发布。在aa这个文件夹下面有一个update.ini文件,所以update.ini文件在服务器的绝对路径就是"e:\aa\update.ini",如果在一般的应用程序下就可以通过:ExtractFilePath(Application.ExeName)+'update.ini'获得,但是在IIS里这样写获得的是'c:\WINNT\system32\update.ini'。
我的问题是如何获得update.ini文件在服务器的绝对路径,即"e:\aa\update.ini",并且在win2000,和win2003下有何区别。

解决方案 »

  1.   

    我在程序中获取isapi 的dll的方法
    function GetDllPath(const DllFileName: string): string;
    var
      ModuleList: Cardinal;
      pm: TModuleEntry32;
      sTemp: string;
    begin
      //Result := 'Test';
      ModuleList := CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, GetCurrentProcessId);
      pm.dwSize := SizeOf(TModuleEntry32);
      if Module32First(ModuleList, pm) then
      begin
        repeat
          if Pos(LowerCase(DllFileName), LowerCase(pm.szExePath)) > 0 then
          begin
            sTemp := pm.szExePath;
            Result := Copy(sTemp, 1, Length(sTemp) - Length(DllFileName));
            break;
          end;
        until not Module32Next(ModuleList, pm);
      end;
      CloseHandle(ModuleList);
    end;看lz能不能参考下。