我需要获取当前应用程序正在使用的所有软件包的列表。
当前,我正在使用以下功能,但它不会返回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的完整列表?