Получить все имена ресурсов, что были загружены данным приложением

Советы » Ресурсы(RES-файлы) » Получить все имена ресурсов, что были загружены данным приложением

type

TForm1 = class

(TForm) Button1: TButton; Memo1: TMemo; procedure

Button1Click(Sender: TObject); private

end

; var

Form1: TForm1; implementation

{$R *.dfm} function

enumResNamesProc(module: HMODULE; restype, resname: PChar; list: TStrings): Integer; stdcall

; begin

if

HiWord(Cardinal(resname)) <> 0 then

list.Add(' ' + resname) else

list.Add(Format(' #%d', [loword(Cardinal(resname))])); Result := 1; end

; Function

StockResourceType(restype: PChar): string

; const

restypenames: Array

[1..22] of

String

= ( 'RT_CURSOR', // = MakeIntResource(1); 'RT_BITMAP', // = MakeIntResource(2); 'RT_ICON', // = MakeIntResource(3); 'RT_MENU', // = MakeIntResource(4); 'RT_DIALOG', // = MakeIntResource(5); 'RT_STRING', // = MakeIntResource(6); 'RT_FONTDIR',// = MakeIntResource(7); 'RT_FONT', // = MakeIntResource(8); 'RT_ACCELERATOR',// = MakeIntResource(9); 'RT_RCDATA', // = MakeIntResource(10); 'RT_MESSAGETABLE',// = MakeIntResource(11); // DIFFERENCE = 11; 'RT_GROUP_CURSOR',// = MakeIntResource(DWORD(RT_CURSOR +7DIFFERENCE)); 'UNKNOWN', // 13 not used 'RT_GROUP_ICON', // = MakeIntResource(DWORD(RT_ICON +DIFFERENCE)); 'UNKNOWN', // 15 not used 'RT_VERSION', // = MakeIntResource(16); 'RT_DLGINCLUDE', // = MakeIntResource(17); 'UNKNOWN', 'RT_PLUGPLAY', // = MakeIntResource(19); 'RT_VXD', // = MakeIntResource(20); 'RT_ANICURSOR', // = MakeIntResource(21); 'RT_ANIICON' // = MakeIntResource(22); ); var

resid: Cardinal absolute

restype; begin

if

resid in

[1..22] then

Result := restypenames[resid] else

Result := 'UNKNOWN'; end

; function

enumResTypesProc(module: HMODULE; restype: PChar; list: TStrings): Integer; stdcall

; begin

if

HiWord(Cardinal(restype)) <> 0 then

list.Add(restype) else

list.Add(Format('Stock type %d: %s', [LoWord(Cardinal(restype)), StockResourcetype(restype)])); EnumResourceNames(module, restype, @enumResNamesProc, Integer(list)); Result := 1; end

; procedure

TForm1.Button1Click(Sender: TObject); begin

memo1.Clear; if

not

EnumResourceTypes(hinstance, @enumResTypesProc, Integer(memo1.Lines)) then

memo1.Lines.Add(Format('GetLastError= %8.8x', [GetLastError])) else

memo1.Lines.Add('Successful'); end

; end

.

Другое по теме:

Категории

Статьи

Советы

Copyright © 2022 - All Rights Reserved - www.delphirus.com