检查 Delphi 中的另一个应用程序中是否存在资源
Check if resource exists in another application in Delphi
我正在尝试验证另一个 Delphi 应用程序中是否存在资源,问题是只知道如何在本地执行此操作,我的意思是在应用程序本身中。
来源:
function exists_resource(name: string): boolean;
begin
if (FindResource(HInstance, PChar(name), RT_RCDATA) <> 0) then
begin
Result := True;
end
else
begin
Result := False;
end;
end;
因为我可以在不同的应用程序中验证这一点?
使用LoadLibraryEx
加载外部文件。
function exists_resource(const name, filename: string): boolean;
var
HInst: THandle;
begin
HInst:= LoadLibraryEx(PChar(Filename), 0, LOAD_LIBRARY_AS_DATAFILE or LOAD_LIBRARY_AS_IMAGE_RESOURCE);
//Win32Check(HInst); //Uncomment if you want to generate errors.
if HInst = 0 then exit(false);
try
Exit((FindResource(HInst, PChar(name), RT_RCDATA) <> 0));
finally
FreeLibrary(Hinst);
end; {try}
end;
请注意,以这种方式使用 LoadLibraryEx 将适用于加载 dll 和 exe。
我正在尝试验证另一个 Delphi 应用程序中是否存在资源,问题是只知道如何在本地执行此操作,我的意思是在应用程序本身中。
来源:
function exists_resource(name: string): boolean;
begin
if (FindResource(HInstance, PChar(name), RT_RCDATA) <> 0) then
begin
Result := True;
end
else
begin
Result := False;
end;
end;
因为我可以在不同的应用程序中验证这一点?
使用LoadLibraryEx
加载外部文件。
function exists_resource(const name, filename: string): boolean;
var
HInst: THandle;
begin
HInst:= LoadLibraryEx(PChar(Filename), 0, LOAD_LIBRARY_AS_DATAFILE or LOAD_LIBRARY_AS_IMAGE_RESOURCE);
//Win32Check(HInst); //Uncomment if you want to generate errors.
if HInst = 0 then exit(false);
try
Exit((FindResource(HInst, PChar(name), RT_RCDATA) <> 0));
finally
FreeLibrary(Hinst);
end; {try}
end;
请注意,以这种方式使用 LoadLibraryEx 将适用于加载 dll 和 exe。