valeron87, неплохо бы, чтобы твой InnoUnPacker извлекал сырой код в виде CompiledCode.bin...
Skullboy, окошко Extracting (Распаковка) - это SFX-архив 7-Zip, включенный в инсталлятор и запускаемый с ключом -Y
О загрузке jpg, png, gif и прочих графических файлов через
ImgGdiPlus.dll.
Собрал [more=скрипт]
#define Background "Background.jpg"
[Setup]
AppName=Image Stream
AppVerName=Image Stream
CreateAppDir=false
WindowVisible=true
[Files]
Source: {#Background}; Flags: dontcopy noencryption
Source: ImgGdiplus.dll; Flags: dontcopy noencryption
[Code]
type
hDC = Longint;
TSIZE = record cx: UINT; cy: UINT; end;
const
SRCCOPY = $CC0020;
var
ImageStream: Longint;
Size, MainSize: TSize;
WinDC: hDC;
function GetDC(Wnd: HWnd): hDC; external 'GetDC@user32.dll stdcall';
function ReleaseDC(Wnd: HWnd; DC: hDC): Longint; external 'ReleaseDC@user32.dll stdcall';
function LoadPicture(Sw: TSize; name: PChar): Longint; external '_LoadPicture@8@files:ImgGdiplus.dll stdcall delayload';
procedure StretchImg(LoadedImage, hDC: Longint; dstX, dstY, dstXE, dstYE, srcX, srcY, srcXE, srcYE: integer; dwROP: DWord); external '_StretchImg@44@files:ImgGdiplus.dll stdcall delayload';
procedure ReleaseImg(LoadedImage: Longint); external '_ReleaseImg@4@files:ImgGdiplus.dll stdcall delayload';
procedure InitializeWizard;
begin
ExtractTemporaryFile('{#Background}');
// MainForm.BorderStyle:= bsNone { при этом изображение исчезает!}
SIZE.cx:= MainForm.Width;
SIZE.cy:= MainForm.Height;
MainSize.CX:= 800;
MainSize.CY:= 600;
ImageStream:= LoadPicture(SIZE, ExpandConstant('{tmp}\{#Background}'));
WinDC:= GetDC(MainForm.Handle);
StretchImg(ImageStream, WinDC, 0, 0, SIZE.CX, SIZE.CY, 0, 0, MainSize.CX, MainSize.CY, SRCCOPY);
ReleaseDC(MainForm.Handle, WinDC)
ReleaseImg(ImageStream)
end;
[/more], загружающий jpeg-файл как фоновый рисунок. (спасибо
Genri)
Но если перемещать окно мастера, то изображение стирается. Как это исправить?