gpt4 book ai didi

delphi - 如何获取已加载的运行时包的列表?

转载 作者:行者123 更新时间:2023-12-03 15:09:16 26 4
gpt4 key购买 nike

我正在为我的应用程序创建一个“版本信息”对话框;类似于 Delphi 在“关于”对话框中的内容。我只想显示运行时包(.BPL 文件)的版本信息,而不是所有加载的 DLL。 RTL 是否包含获取已加载包列表的函数,或者我必须使用 EnumProcessModules函数并过滤结果?

提前致谢...

最佳答案

您可以使用EnumModules来自系统的函数。

这里非常简单地演示了如何使用 EnumModules 函数并获取所有加载的 BPL 的名称。它是一个控制台应用程序,但代码可以轻松地在生产应用程序中重用。如果您想测试它,请确保您使用的是软件包:

program Project17;

{$APPTYPE CONSOLE}

uses
SysUtils, Classes, Windows;

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

var L: TStringList;

begin
try
L := TStringList.Create;
try
System.EnumModules(EnumModulesFunc, L);
WriteLn(L.Text);
finally L.Free;
end;
Readln;
except
on E: Exception do
Writeln(E.ClassName, ': ', E.Message);
end;
end.

关于delphi - 如何获取已加载的运行时包的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14811655/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com