更换一个 EXE 的字符串表?
先有这样的字符资源:
STRINGTABLE { 1, "abcdefghijklmnopqrstuvwxyz" }
function ChangeString(const FileName;NewString: string): Boolean; var hUpdate: Cardinal; s:string; begin Result:= False; hUpdate:= BeginUpdateResource('C:\Project1.exe', false); if hUpdate = 0 then Exit; try s:=NewString; Result:= UpdateResource(hUpdate, 'String Table','1', 0, @s[1], Length(s)); finally EndUpdateResource(hUpdate, not Result); end; end;
其中值:
RT_ACCELERATOR Accelerator table.
RT_ANICURSOR Animated cursor.
RT_ANIICON Animated icon.
RT_BITMAP Bitmap resource.
RT_CURSOR Hardware-dependent cursor resource.
RT_DIALOG Dialog box.
RT_DLGINCLUDE Allows a resource editing tool to associate a string with an .rc file.
Typically, the string is the name of the header file that provides symbolic names.
The resource compiler parses the string but otherwise ignores the value.
RT_FONT Font resource. RT_FONTDIR Font directory resource.
RT_GROUP_CURSOR Hardware-independent cursor resource.
RT_GROUP_ICON Hardware-independent icon resource.
RT_HTML HTML. RT_ICON Hardware-dependent icon resource.
RT_MANIFEST Microsoft® Windows® XP: Side-by-Side Assembly XML Manifest.
RT_MENU Menu resource.
RT_MESSAGETABLE Message-table entry.
RT_PLUGPLAY Plug and Play resource.
RT_RCDATA Application-defined resource (raw data).
RT_STRING String-table entry.
RT_VERSION Version resource. RT_VXD VXD.