检查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。

最新更新