如何获取当前应用程序使用的所有库DLL / BPL?

时间:2019-06-26 06:51:39

标签: delphi dll package delphi-2007 runtime-packages

我需要获取当前应用程序正在使用的所有软件包的列表。

当前,我正在使用以下功能,但它不会返回DLL(至少一个...),我确定它已由隐式加载的第三方程序包使用(文件被锁定,而应用程序处于锁定状态)正在运行):

function EnumModulesFunc(HInstance: Integer; Data: Pointer) : boolean;
var
  Buff : array[0..1023] of Char;
begin
  Result := True;
  if(GetModuleFileName(HInstance, @Buff, SizeOf(Buff)) = ERROR_INSUFFICIENT_BUFFER)
  then Buff[High(Buff)] := #0;
  TStringList(Data).Add(Buff);
end;

...

var
  Modules : TStringList;
begin
  Modules := TStringList.Create();
  try
    System.EnumModules(EnumModulesFunc, Modules);
    ShowMessage(Modules.Text);
  finally
    Modules.Free;
  end;
end;

如何获取当前应用程序使用的所有BPL和DLL的完整列表?

0 个答案:

没有答案