Announcement

Collapse
No announcement yet.

[How To] Get contents of the resource specified module

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • [How To] Get contents of the resource specified module

    Code:
    [font=Courier New][size=2][color=#008000][i]--[[ The resource type ]][/i][/color][color=#008000][i]--[/i][/color]
    RT_ACCELERATOR  [color=#FF0000]=[/color] 9;
    RT_ANICURSOR    [color=#FF0000]=[/color] 21;
    RT_ANIICON      [color=#FF0000]=[/color] 22;
    RT_BITMAP       [color=#FF0000]=[/color] 2;
    RT_CURSOR       [color=#FF0000]=[/color] 1;
    RT_DIALOG       [color=#FF0000]=[/color] 5;
    RT_DLGINCLUDE   [color=#FF0000]=[/color] 17;
    RT_FONT         [color=#FF0000]=[/color] 8;
    RT_FONTDIR      [color=#FF0000]=[/color] 7;
    RT_GROUP_CURSOR [color=#FF0000]=[/color] 12;
    RT_GROUP_ICON   [color=#FF0000]=[/color] 14;
    RT_HTML         [color=#FF0000]=[/color] 23;
    RT_ICON         [color=#FF0000]=[/color] 3;
    RT_MANIFEST     [color=#FF0000]=[/color] 24;
    RT_MENU         [color=#FF0000]=[/color] 4;
    RT_MESSAGETABLE [color=#FF0000]=[/color] 11;
    RT_PLUGPLAY     [color=#FF0000]=[/color] 19;
    RT_RCDATA       [color=#FF0000]=[/color] 10;
    RT_STRING       [color=#FF0000]=[/color] 6;
    RT_VERSION      [color=#FF0000]=[/color] 16;
    RT_VXD          [color=#FF0000]=[/color] 20;
    
    [color=#008000][i]--[[ GetResourceData () - This function receives the binary content of the specified resource
            sModulePath - Names a Win32 executable module (either a .dll or an .exe file). The name specified is the
            filename of the executable module.
            vType - The type of the resource. This parameter can be string or integer value.
                May be: https://msdn.microsoft.com/ru-ru/library/windows/desktop/ms648009(v=vs.85).aspx
            vName - The name of the resource. This parameter can be string or integer value.
            nLang - The language of the resource.
    ]][/i][/color][color=#008000][i]--[/i][/color]
    GetResourceData [color=#FF0000]=[/color] [color=#0000FF][b]function[/b][/color](sModulePath[color=#FF0000],[/color] vType[color=#FF0000],[/color] vName[color=#FF0000],[/color] nLang)
        nLang [color=#FF0000]=[/color] nLang [color=#0000FF][b]or[/b][/color] 0;
    
        [color=#0000FF][b]local[/b][/color] sRetData [color=#FF0000]=[/color] [color=#800080]''[/color];
        [color=#0000FF][b]if[/b][/color] [color=#0000FF][b]not[/b][/color] File[color=#FF0000].[/color]DoesExist(sModulePath) [color=#0000FF][b]then[/b][/color] [color=#0000FF][b]return[/b][/color] [color=#800080]''[/color]; [color=#0000FF][b]end[/b][/color]
        [color=#0000FF][b]local[/b][/color] Kernel32 [color=#FF0000]=[/color] Library[color=#FF0000].[/color]Load(_SystemFolder[color=#FF0000].[/color][color=#FF0000].[/color][color=#800080]"\\kernel32.dll"[/color]);
        [color=#0000FF][b]local[/b][/color] hInstance [color=#FF0000]=[/color] Kernel32[color=#FF0000].[/color]LoadLibraryExA(sModulePath[color=#FF0000],[/color] 0[color=#FF0000],[/color] 2);
        [color=#0000FF][b]if[/b][/color] (hInstance [color=#FF0000]>[/color] 0) [color=#0000FF][b]then[/b][/color]
            [color=#0000FF][b]local[/b][/color] hResource [color=#FF0000]=[/color] Kernel32[color=#FF0000].[/color]FindResourceExA(hInstance[color=#FF0000],[/color] vType[color=#FF0000],[/color] vName[color=#FF0000],[/color] nLang);
            [color=#0000FF][b]if[/b][/color] (hResource [color=#FF0000]>[/color] 0) [color=#0000FF][b]then[/b][/color]
                [color=#0000FF][b]local[/b][/color] nSize [color=#FF0000]=[/color] Kernel32[color=#FF0000].[/color]SizeofResource(hInstance[color=#FF0000],[/color] hResource);
                [color=#0000FF][b]if[/b][/color] (nSize [color=#FF0000]>[/color] 0) [color=#0000FF][b]then[/b][/color]
                    [color=#0000FF][b]local[/b][/color] hData [color=#FF0000]=[/color] Kernel32[color=#FF0000].[/color]LoadResource(hInstance[color=#FF0000],[/color] hResource);
                    [color=#0000FF][b]if[/b][/color] (hData [color=#FF0000]>[/color] 0) [color=#0000FF][b]then[/b][/color]
                        [color=#0000FF][b]local[/b][/color] pData [color=#FF0000]=[/color] Kernel32[color=#FF0000].[/color]LockResource(hData);
                        sRetData [color=#FF0000]=[/color] MemoryEx[color=#FF0000].[/color]LString(pData[color=#FF0000],[/color] nSize);
                    [color=#0000FF][b]end[/b][/color]
                [color=#0000FF][b]end[/b][/color]
            [color=#0000FF][b]end[/b][/color]
            Kernel32[color=#FF0000].[/color]FreeLibrary(hInstance);
        [color=#0000FF][b]end[/b][/color]
        Kernel32[color=#FF0000]:[/color]Close_();
    
        [color=#0000FF][b]return[/b][/color] sRetData;
    [color=#0000FF][b]end[/b][/color]
    
    [color=#0000FF][b]local[/b][/color] sData [color=#FF0000]=[/color] GetResourceData(_SourceFolder[color=#FF0000].[/color][color=#FF0000].[/color][color=#800080]'\\'[/color][color=#FF0000].[/color][color=#FF0000].[/color]_SourceFilename[color=#FF0000],[/color] [color=#800080]'STYLE_XML'[/color][color=#FF0000],[/color] [color=#800080]'AQUA_IDX_OFFICE2007_STYLE'[/color][color=#FF0000],[/color] 1033);
    [color=#008000][i]-- Or[/i][/color]
    [color=#008000][i]--local sData = GetResourceData(_SourceFolder..'\\'.._SourceFilename, RT_MANIFEST, 1, 1033);[/i][/color]
    Input[color=#FF0000].[/color]SetText([color=#800080]"Input1"[/color][color=#FF0000],[/color] sData);[/size][/font]
Working...
X