Lom 48 #365929 Posted November 15, 2016 подскажи если знаешь а как туда еще кеш клинер вмонтировать? )) Ты про обычную прогу для компьютера CCleaner ? Quote Share this post Link to post Short link Share on other sites
Draug 59 #365930 Posted November 15, 2016 Ты про обычную прогу для компьютера CCleaner ? нет))) про такое - Quote Share this post Link to post Short link Share on other sites
Nowik1971 2 #365934 Posted November 15, 2016 (edited) смотрю уже много модпакеров стало :), удачи вам в начинании :) нет))) про такое - В форме делаешь , а потом подключаешь скрипт который ты хотел и будет он на страинице вначале..... или где пожелаешь... Edited November 15, 2016 by Nowik1971 Quote Share this post Link to post Short link Share on other sites
BeJIuKuu_TaHKoBbIu_BouH 4 #365960 Posted November 16, 2016 подскажи если знаешь а как туда еще кеш клинер вмонтировать? )) этот скрипт уже давно приведён в человеческий вид #define WotVersion "0.9.16" #include "SHFileOperation.iss"; [Code] var DeleteRadioButton, MoveRadioButton, NoneRadioButton: TRadioButton; DeleteCashAndLogsCheckBox, DeleteUpdatesCheckBox: TCheckBox; const DeleteDescText = 'Установщик удалит все файлы в папках.'; MoveDescText = 'Установщик сделает резервную копию файлов.'; NoneDescText = 'Установщик не будет ничего трогать.'; function BackupCheck_1(): Boolean; var DeleteDescLabel, MoveDescLabel, NoneDescLabel: TLabel; begin DeleteRadioButton:=TRadioButton.Create(WizardForm); DeleteRadioButton.SetBounds(0, 120, WizardForm.RunList.Width, 20) DeleteRadioButton.Checked:=True; DeleteRadioButton.Caption:='Удалить моды'; DeleteRadioButton.Parent:=WizardForm.SelectDirPage; DeleteDescLabel:=TLabel.Create(WizardForm); DeleteDescLabel.Parent:=WizardForm.SelectDirPage; DeleteDescLabel.Left:=0; DeleteDescLabel.Top:=DeleteRadioButton.Top + DeleteRadioButton.Height; DeleteDescLabel.Width:=WizardForm.SelectDirPage; DeleteDescLabel.Height:=20; DeleteDescLabel.AutoSize:=False; DeleteDescLabel.Wordwrap:=True; DeleteDescLabel.Caption:=DeleteDescText; MoveRadioButton:=TRadioButton.Create(WizardForm); MoveRadioButton.SetBounds(0, 160, WizardForm.RunList.Width, 20) MoveRadioButton.Checked:=False; MoveRadioButton.Caption:='Сделать резервную копию модов'; MoveRadioButton.Parent:=WizardForm.SelectDirPage; MoveDescLabel:=TLabel.Create(WizardForm); MoveDescLabel.Parent:=WizardForm.SelectDirPage; MoveDescLabel.Left:=0; MoveDescLabel.Top:=MoveRadioButton.Top + MoveRadioButton.Height; MoveDescLabel.Width:=WizardForm.SelectDirPage; MoveDescLabel.Height:=20; MoveDescLabel.AutoSize:=False; MoveDescLabel.Wordwrap:=True; MoveDescLabel.Caption:=MoveDescText; NoneRadioButton:=TRadioButton.Create(WizardForm); NoneRadioButton.SetBounds(0, 200, WizardForm.RunList.Width, 20) NoneRadioButton.Checked:=False; NoneRadioButton.Caption:='Ничего не трогать'; NoneRadioButton.Parent:=WizardForm.SelectDirPage; NoneDescLabel:=TLabel.Create(WizardForm); NoneDescLabel.Parent:=WizardForm.SelectDirPage; NoneDescLabel.Left:=0; NoneDescLabel.Top:=NoneRadioButton.Top + NoneRadioButton.Height; NoneDescLabel.Width:=WizardForm.SelectDirPage; NoneDescLabel.Height:=20; NoneDescLabel.AutoSize:=False; NoneDescLabel.Wordwrap:=True; NoneDescLabel.Caption:=NoneDescText; DeleteCashAndLogsCheckBox:=TCheckBox.Create(WizardForm); DeleteCashAndLogsCheckBox.SetBounds(0, 240, WizardForm.RunList.Width, 20) DeleteCashAndLogsCheckBox.Checked:=True; DeleteCashAndLogsCheckBox.Caption:='Очистить кэш и логи'; DeleteCashAndLogsCheckBox.Parent:=WizardForm.SelectDirPage; DeleteUpdatesCheckBox:=TCheckBox.Create(WizardForm); DeleteUpdatesCheckBox.SetBounds(150, 240, WizardForm.RunList.Width, 20) DeleteUpdatesCheckBox.Checked:=True; DeleteUpdatesCheckBox.Caption:='Очистить папку Updates, освободив место на диске'; DeleteUpdatesCheckBox.Parent:=WizardForm.SelectDirPage; end; function BackupCheck_2(): Boolean; begin If DeleteRadioButton.Checked then begin DelTree(ExpandConstant('{app}\res_mods\{#WotVersion}'), True, True, True); DelTree(ExpandConstant('{app}\res_mods\configs'), True, True, True); DelTree(ExpandConstant('{app}\res_mods\mods'), True, True, True); CreateDir(ExpandConstant('{app}\res_mods\{#WotVersion}')); end; end; function BackupCheck_3(): Boolean; begin If MoveRadioButton.Checked then begin MoveDir(ExpandConstant('{app}\res_mods\{#WotVersion}\'),ExpandConstant('{app}\res_mods\backup\{#WotVersion}')); MoveDir(ExpandConstant('{app}\res_mods\configs\'),ExpandConstant('{app}\res_mods\backup\configs')); MoveDir(ExpandConstant('{app}\res_mods\mods\'),ExpandConstant('{app}\res_mods\backup\mods')); CreateDir(ExpandConstant('{app}\res_mods\{#WotVersion}')); DelTree(ExpandConstant('{app}\res_mods\configs'), True, True, True); DelTree(ExpandConstant('{app}\res_mods\mods'), True, True, True); end; end; function BackupCheck_4(): Boolean; begin If DeleteCashAndLogsCheckBox.Checked then begin DelTree(ExpandConstant('{userappdata}\wargaming.net\WorldOfTanks\account_caches'), True, True, True); DelTree(ExpandConstant('{userappdata}\wargaming.net\WorldOfTanks\battle_results'), True, True, True); DelTree(ExpandConstant('{userappdata}\wargaming.net\WorldOfTanks\custom_data'), True, True, True); DelTree(ExpandConstant('{userappdata}\wargaming.net\WorldOfTanks\dossier_cache'), True, True, True); DelTree(ExpandConstant('{userappdata}\wargaming.net\WorldOfTanks\tutorial_cache'), True, True, True); DeleteFile(ExpandConstant('{app}\python.log')); DeleteFile(ExpandConstant('{app}\xvm.log')); end; end; function BackupCheck_5(): Boolean; begin If DeleteUpdatesCheckBox.Checked then begin DelTree(ExpandConstant('{app}\Updates'), True, True, True); CreateDir(ExpandConstant('{app}\Updates')); end; end; procedure CurStepChanged(CurStep: TSetupStep); begin if CurStep = ssInstall then begin BackupCheck_2(); BackupCheck_3(); BackupCheck_4(); BackupCheck_5(); end; end; procedure InitializeWizard1(); begin BackupCheck_1(); end; #ifdef UNICODE #define A "W" #else #define A "A" #endif const UNDEF_INDEX = -777; ALPHA_BLEND_LEVEL = 255; // max=Byte=255 WS_EX_LAYERED = $80000; WS_EX_TRANSPARENT = $20; LWA_COLORKEY = 1; LWA_ALPHA = 2; GWL_EXSTYLE = (-20); var InfoPic: TBitmapImage; LastIndex: Integer; TempPath: String; PicForm: TForm; type COLORREF = DWORD; function GetCursorPos(var lpPoint: TPoint): BOOL; external '[email protected] stdcall'; function SetLayeredWindowAttributes(Hwnd: THandle; crKey: COLORREF; bAlpha: Byte; dwFlags: DWORD): Boolean; external '[email protected] stdcall'; function GetWindowLong(hWnd: HWND; nIndex: Integer): Longint; external 'GetWindowLong{#A}@user32.dll stdcall'; function SetWindowLong(hWnd: HWND; nIndex: Integer; dwNewLong: Longint): Longint; external 'SetWindowLong{#A}@user32.dll stdcall'; function SetFocus(hWnd: HWND): HWND; external '[email protected] stdcall'; procedure ShowPicHint(const PicFilePath: String); var pt: TPoint; begin if not GetCursorPos(pt) then Exit; InfoPic.Bitmap.LoadFromFile(PicFilePath); try with PicForm do begin SetBounds(ScaleX(pt.x + 390), ScaleY(pt.y + 7), InfoPic.Width, InfoPic.Height); Show; end; finally SetFocus(WizardForm.Handle); end; end; procedure CompOnItemMouseMove(Sender: TObject; X, Y: Integer; Index: Integer; Area: TItemArea); var UndefPic: String; begin if Index = -1 then Exit; if Index = LastIndex then Exit; try case TNewCheckListBox(Sender).ItemCaption[Index] of '1.Отражение броней(unKnown_bot).': UndefPic := '1-Забл броней урон.bmp'; '2.Радар (тылы).': UndefPic := 'Радар.bmp'; '3.Командирская камера (koshnaranek).': UndefPic := 'Командирская камера.bmp'; '4.Таймер сведения орудия в бою (Ekspoint).': UndefPic := 'таймер сведения.bmp'; '5.Винтик.': UndefPic := 'винтик.bmp'; else begin LastIndex := UNDEF_INDEX; PicForm.Hide; Exit; end; end; if not FileExists(TempPath + UndefPic) then ExtractTemporaryFile(UndefPic); ShowPicHint(TempPath + UndefPic); finally LastIndex := Index; end; end; procedure CompOnMouseLeave(Sender: TObject); begin PicForm.Hide; LastIndex := -1; end; procedure InitInfo(); begin WizardForm.ComponentsList.OnItemMouseMove := @CompOnItemMouseMove; WizardForm.ComponentsList.OnMouseLeave := @CompOnMouseLeave; TempPath := AddBackslash(ExpandConstant('{tmp}')); LastIndex := UNDEF_INDEX; PicForm := TForm.Create(WizardForm) with PicForm do begin BorderStyle := bsNone; FormStyle := fsStayOnTop; InfoPic := TBitmapImage.Create(PicForm) with InfoPic do begin Parent := PicForm; AutoSize := True; end; end; SetWindowLong(PicForm.Handle, GWL_EXSTYLE, GetWindowLong(PicForm.Handle, GWL_EXSTYLE) or WS_EX_LAYERED); SetLayeredWindowAttributes(PicForm.Handle, 0, ALPHA_BLEND_LEVEL, LWA_ALPHA); end; procedure InitializeWizard2(); begin InitInfo(); end; procedure InitializeWizard(); begin InitializeWizard1(); InitializeWizard2(); end; 1 Quote Share this post Link to post Short link Share on other sites
Nowik1971 2 #365970 Posted November 16, 2016 Весь топ почти перелопатил, уже в глазах рябит... Подскажите как совместить скрипт бекап ; BackUpPage - отдельная страница для реализации резервного копирования файлов с выбором параметров; Автор: AtotIK #include "SHFileOperation.iss"; varBackupPage: TWizardPage;DeleteRadioButton, MoveRadioButton, NoneRadioButton: TNewRadioButton; constBackupDescText ='Во избежание проблем совместимости и конфликтов между модификациями рекомендуется удалить уже установленные на данный момент в игровом клиенте.' #13#13 'Выберите необходимый пункт из представленных. При этом будет очищено содержимое папки "res_mods\0.8.11", удалена папка "res_mods\xvm" или созданы резервные копии Ваших файлов.';DeleteDescText ='Установщик удалит все файлы в папках.';MoveDescText ='Установщик сделает резервную копию всех файлов в папках.';NoneDescText ='Установщик оставит всё как есть.'; function BackupCheck_1(): Boolean;varBackupDescLabel, DeleteDescLabel, MoveDescLabel, NoneDescLabel: TLabel;beginBackupPage:=CreateCustomPage(wpWelcome, 'Создание резервных копий файлов перед установкой', 'Пожалуйста, прочтите следующую важную информацию перед тем, как продолжить.');BackupDescLabel:=TLabel.Create(WizardForm);BackupDescLabel.Parent:=BackupPage.Surface;BackupDescLabel.Left:=0;BackupDescLabel.Top:=0;BackupDescLabel.Width:=BackupPage.SurfaceWidth;BackupDescLabel.Height:=90;BackupDescLabel.AutoSize:=False;BackupDescLabel.Wordwrap:=True;BackupDescLabel.Caption:=BackupDescText; DeleteRadioButton:=TNewRadioButton.Create(WizardForm);DeleteRadioButton.Parent:=BackupPage.Surface;DeleteRadioButton.Checked:=False;DeleteRadioButton.Top:=95;DeleteRadioButton.Width:=BackupPage.SurfaceWidth;DeleteRadioButton.Font.Style:=[fsBold];DeleteRadioButton.Font.Size:=9;DeleteRadioButton.Caption:='Удалить файлы'DeleteDescLabel:=TLabel.Create(WizardForm);DeleteDescLabel.Parent:=BackupPage.Surface;DeleteDescLabel.Left:=18;DeleteDescLabel.Top:=DeleteRadioButton.Top + DeleteRadioButton.Height + 4;DeleteDescLabel.Width:=BackupPage.SurfaceWidth;DeleteDescLabel.Height:=40;DeleteDescLabel.AutoSize:=False;DeleteDescLabel.Wordwrap:=True;DeleteDescLabel.Caption:=DeleteDescText; MoveRadioButton:=TNewRadioButton.Create(WizardForm);MoveRadioButton.Parent:=BackupPage.Surface;MoveRadioButton.Checked:=True;MoveRadioButton.Top:=140;MoveRadioButton.Width:=BackupPage.SurfaceWidth;MoveRadioButton.Font.Style:=[fsBold];MoveRadioButton.Font.Size:=9;MoveRadioButton.Caption:='Сделать резервную копию файлов'MoveDescLabel:=TLabel.Create(WizardForm);MoveDescLabel.Parent:=BackupPage.Surface;MoveDescLabel.Left:=18;MoveDescLabel.Top:=MoveRadioButton.Top + MoveRadioButton.Height + 4;MoveDescLabel.Width:=BackupPage.SurfaceWidth;MoveDescLabel.Height:=40;MoveDescLabel.AutoSize:=False;MoveDescLabel.Wordwrap:=True;MoveDescLabel.Caption:=MoveDescText; NoneRadioButton:=TNewRadioButton.Create(WizardForm);NoneRadioButton.Parent:=BackupPage.Surface;NoneRadioButton.Checked:=False;NoneRadioButton.Top:=185;NoneRadioButton.Width:=BackupPage.SurfaceWidth;NoneRadioButton.Font.Style:=[fsBold];NoneRadioButton.Font.Size:=9;NoneRadioButton.Caption:='Ничего не трогать'NoneDescLabel:=TLabel.Create(WizardForm);NoneDescLabel.Parent:=BackupPage.Surface;NoneDescLabel.Left:=18;NoneDescLabel.Top:=NoneRadioButton.Top + NoneRadioButton.Height + 4;NoneDescLabel.Width:=BackupPage.SurfaceWidth;NoneDescLabel.Height:=40;NoneDescLabel.AutoSize:=False;NoneDescLabel.Wordwrap:=True;NoneDescLabel.Caption:=NoneDescText;end; function BackupCheck_2(): Boolean;beginIf DeleteRadioButton.Checked thenbeginDelTree(ExpandConstant('{app}\res_mods\0.8.11'), True, True, True);DelTree(ExpandConstant('{app}\res_mods\xvm'), True, True, True);CreateDir(ExpandConstant('{app}\res_mods\0.8.11'));end;end; function BackupCheck_3(): Boolean;beginIf MoveRadioButton.Checked thenbeginMoveDir(ExpandConstant('{app}\res_mods\0.8.11\'),ExpandConstant('{app}\res_mods\backup\0.8.11'));MoveDir(ExpandConstant('{app}\res_mods\xvm\'),ExpandConstant('{app}\res_mods\backup\xvm'));CreateDir(ExpandConstant('{app}\res_mods\0.8.11'));DelTree(ExpandConstant('{app}\res_mods\xvm'), True, True, True);end;end; procedure CurStepChanged(CurStep: TSetupStep);beginIf CurStep=ssInstall thenbeginBackupCheck_2();BackupCheck_3();end;end; procedure InitializeWizard();beginBackupCheck_1();end; и картинки при наведении [code=auto:0]#ifdef UNICODE#define A "W" #else #define A "A" #endif const UNDEF_INDEX = -777; ALPHA_BLEND_LEVEL = 255; // max=Byte=255 WS_EX_LAYERED = $80000; WS_EX_TRANSPARENT = $20; LWA_COLORKEY = 1; LWA_ALPHA = 2; GWL_EXSTYLE = (-20); var InfoPic: TBitmapImage; LastIndex: Integer; TempPath: String; PicForm: TForm; type COLORREF = DWORD; function GetCursorPos(var lpPoint: TPoint): BOOL; external '[email protected] stdcall'; function SetLayeredWindowAttributes(Hwnd: THandle; crKey: COLORREF; bAlpha: Byte; dwFlags: DWORD): Boolean; external '[email protected] stdcall'; function GetWindowLong(hWnd: HWND; nIndex: Integer): Longint; external 'GetWindowLong{#A}@user32.dll stdcall'; function SetWindowLong(hWnd: HWND; nIndex: Integer; dwNewLong: Longint): Longint; external 'SetWindowLong{#A}@user32.dll stdcall'; function SetFocus(hWnd: HWND): HWND; external '[email protected] stdcall'; procedure ShowPicHint(const PicFilePath: String); var pt: TPoint; begin if not GetCursorPos(pt) then Exit; InfoPic.Bitmap.LoadFromFile(PicFilePath); try with PicForm do begin SetBounds(ScaleX(pt.x + 390), ScaleY(pt.y + 7), InfoPic.Width, InfoPic.Height); Show; end; finally SetFocus(WizardForm.Handle); end; end; procedure CompOnItemMouseMove(Sender: TObject; X, Y: Integer; Index: Integer; Area: TItemArea); var UndefPic: String; begin if Index = -1 then Exit; if Index = LastIndex then Exit; try case TNewCheckListBox(Sender).ItemCaption[index] of '1.Отражение броней(unKnown_bot).': UndefPic := '1-Забл броней урон.bmp'; '2.Радар (тылы).': UndefPic := 'Радар.bmp'; '3.Командирская камера (koshnaranek).': UndefPic := 'Командирская камера.bmp'; '4.Таймер сведения орудия в бою (Ekspoint).': UndefPic := 'таймер сведения.bmp'; '5.Винтик.': UndefPic := 'винтик.bmp'; else begin LastIndex := UNDEF_INDEX; PicForm.Hide; Exit; end; end; if not FileExists(TempPath + UndefPic) then ExtractTemporaryFile(UndefPic); ShowPicHint(TempPath + UndefPic); finally LastIndex := Index; end; end; procedure CompOnMouseLeave(Sender: TObject); begin PicForm.Hide; LastIndex := -1; end; procedure InitInfo(); begin WizardForm.ComponentsList.OnItemMouseMove := @CompOnItemMouseMove; WizardForm.ComponentsList.OnMouseLeave := @CompOnMouseLeave; TempPath := AddBackslash(ExpandConstant('{tmp}')); LastIndex := UNDEF_INDEX; PicForm := TForm.Create(WizardForm) with PicForm do begin BorderStyle := bsNone; FormStyle := fsStayOnTop; InfoPic := TBitmapImage.Create(PicForm) with InfoPic do begin Parent := PicForm; AutoSize := True; end; end; SetWindowLong(PicForm.Handle, GWL_EXSTYLE, GetWindowLong(PicForm.Handle, GWL_EXSTYLE) or WS_EX_LAYERED); SetLayeredWindowAttributes(PicForm.Handle, 0, ALPHA_BLEND_LEVEL, LWA_ALPHA); end; procedure InitializeWizard(); begin InitInfo(); end; по отдельности все работает! совместить не могу! (( Вот так автоматом...'совмещенный скрипт' ; --- Generated by InnoSetup Script Joiner version 3.0, Jul 22 2009, © Bulat Ziganshin . More info at http://issjoiner.codeplex.com/@gmail.com>; --- Source: 778.iss ------------------------------------------------------------ ; BackUpPage - отдельная страница для реализации резервного копирования файлов с выбором параметров ; Автор: AtotIK #include "SHFileOperation.iss"; [code=auto:0] var BackupPage: TWizardPage; DeleteRadioButton, MoveRadioButton, NoneRadioButton: TNewRadioButton; const BackupDescText = 'Во избежание проблем совместимости и конфликтов между модификациями рекомендуется удалить уже установленные на данный момент в игровом клиенте.' #13#13 'Выберите необходимый пункт из представленных. При этом будет очищено содержимое папки "res_mods\0.8.11", удалена папка "res_mods\xvm" или созданы резервные копии Ваших файлов.'; DeleteDescText = 'Установщик удалит все файлы в папках.'; MoveDescText = 'Установщик сделает резервную копию всех файлов в папках.'; NoneDescText = 'Установщик оставит всё как есть.'; function BackupCheck_1(): Boolean; var BackupDescLabel, DeleteDescLabel, MoveDescLabel, NoneDescLabel: TLabel; begin BackupPage:=CreateCustomPage(wpWelcome, 'Создание резервных копий файлов перед установкой', 'Пожалуйста, прочтите следующую важную информацию перед тем, как продолжить.'); BackupDescLabel:=TLabel.Create(WizardForm); BackupDescLabel.Parent:=BackupPage.Surface; BackupDescLabel.Left:=0; BackupDescLabel.Top:=0; BackupDescLabel.Width:=BackupPage.SurfaceWidth; BackupDescLabel.Height:=90; BackupDescLabel.AutoSize:=False; BackupDescLabel.Wordwrap:=True; BackupDescLabel.Caption:=BackupDescText; DeleteRadioButton:=TNewRadioButton.Create(WizardForm); DeleteRadioButton.Parent:=BackupPage.Surface; DeleteRadioButton.Checked:=False; DeleteRadioButton.Top:=95; DeleteRadioButton.Width:=BackupPage.SurfaceWidth; DeleteRadioButton.Font.Style:=[fsBold]; DeleteRadioButton.Font.Size:=9; DeleteRadioButton.Caption:='Удалить файлы' DeleteDescLabel:=TLabel.Create(WizardForm); DeleteDescLabel.Parent:=BackupPage.Surface; DeleteDescLabel.Left:=18; DeleteDescLabel.Top:=DeleteRadioButton.Top + DeleteRadioButton.Height + 4; DeleteDescLabel.Width:=BackupPage.SurfaceWidth; DeleteDescLabel.Height:=40; DeleteDescLabel.AutoSize:=False; DeleteDescLabel.Wordwrap:=True; DeleteDescLabel.Caption:=DeleteDescText; MoveRadioButton:=TNewRadioButton.Create(WizardForm); MoveRadioButton.Parent:=BackupPage.Surface; MoveRadioButton.Checked:=True; MoveRadioButton.Top:=140; MoveRadioButton.Width:=BackupPage.SurfaceWidth; MoveRadioButton.Font.Style:=[fsBold]; MoveRadioButton.Font.Size:=9; MoveRadioButton.Caption:='Сделать резервную копию файлов' MoveDescLabel:=TLabel.Create(WizardForm); MoveDescLabel.Parent:=BackupPage.Surface; MoveDescLabel.Left:=18; MoveDescLabel.Top:=MoveRadioButton.Top + MoveRadioButton.Height + 4; MoveDescLabel.Width:=BackupPage.SurfaceWidth; MoveDescLabel.Height:=40; MoveDescLabel.AutoSize:=False; MoveDescLabel.Wordwrap:=True; MoveDescLabel.Caption:=MoveDescText; NoneRadioButton:=TNewRadioButton.Create(WizardForm); NoneRadioButton.Parent:=BackupPage.Surface; NoneRadioButton.Checked:=False; NoneRadioButton.Top:=185; NoneRadioButton.Width:=BackupPage.SurfaceWidth; NoneRadioButton.Font.Style:=[fsBold]; NoneRadioButton.Font.Size:=9; NoneRadioButton.Caption:='Ничего не трогать' NoneDescLabel:=TLabel.Create(WizardForm); NoneDescLabel.Parent:=BackupPage.Surface; NoneDescLabel.Left:=18; NoneDescLabel.Top:=NoneRadioButton.Top + NoneRadioButton.Height + 4; NoneDescLabel.Width:=BackupPage.SurfaceWidth; NoneDescLabel.Height:=40; NoneDescLabel.AutoSize:=False; NoneDescLabel.Wordwrap:=True; NoneDescLabel.Caption:=NoneDescText; end; function BackupCheck_2(): Boolean; begin If DeleteRadioButton.Checked then begin DelTree(ExpandConstant('{app}\res_mods\0.8.11'), True, True, True); DelTree(ExpandConstant('{app}\res_mods\xvm'), True, True, True); CreateDir(ExpandConstant('{app}\res_mods\0.8.11')); end; end; function BackupCheck_3(): Boolean; begin If MoveRadioButton.Checked then begin MoveDir(ExpandConstant('{app}\res_mods\0.8.11\'),ExpandConstant('{app}\res_mods\backup\0.8.11')); MoveDir(ExpandConstant('{app}\res_mods\xvm\'),ExpandConstant('{app}\res_mods\backup\xvm')); CreateDir(ExpandConstant('{app}\res_mods\0.8.11')); DelTree(ExpandConstant('{app}\res_mods\xvm'), True, True, True); end; end; procedure CurStepChanged1(CurStep: TSetupStep); begin If CurStep=ssInstall then begin BackupCheck_2(); BackupCheck_3(); end; end; procedure InitializeWizard1(); begin BackupCheck_1(); end; [setup] ; --- Source: 777.iss ------------------------------------------------------------ [Code] [code=auto:0] #ifdef UNICODE #define A "W" #else #define A "A" #endif const UNDEF_INDEX = -777; ALPHA_BLEND_LEVEL = 255; // max=Byte=255 WS_EX_LAYERED = $80000; WS_EX_TRANSPARENT = $20; LWA_COLORKEY = 1; LWA_ALPHA = 2; GWL_EXSTYLE = (-20); var InfoPic: TBitmapImage; LastIndex: Integer; TempPath: String; PicForm: TForm; type COLORREF = DWORD; function GetCursorPos(var lpPoint: TPoint): BOOL; external '[email protected] stdcall'; function SetLayeredWindowAttributes(Hwnd: THandle; crKey: COLORREF; bAlpha: Byte; dwFlags: DWORD): Boolean; external '[email protected] stdcall'; function GetWindowLong(hWnd: HWND; nIndex: Integer): Longint; external 'GetWindowLong{#A}@user32.dll stdcall'; function SetWindowLong(hWnd: HWND; nIndex: Integer; dwNewLong: Longint): Longint; external 'SetWindowLong{#A}@user32.dll stdcall'; function SetFocus(hWnd: HWND): HWND; external '[email protected] stdcall'; procedure ShowPicHint(const PicFilePath: String); var pt: TPoint; begin if not GetCursorPos(pt) then Exit; InfoPic.Bitmap.LoadFromFile(PicFilePath); try with PicForm do begin SetBounds(ScaleX(pt.x + 390), ScaleY(pt.y + 7), InfoPic.Width, InfoPic.Height); Show; end; finally SetFocus(WizardForm.Handle); end; end; procedure CompOnItemMouseMove(Sender: TObject; X, Y: Integer; Index: Integer; Area: TItemArea); var UndefPic: String; begin if Index = -1 then Exit; if Index = LastIndex then Exit; try case TNewCheckListBox(Sender).ItemCaption[index] of '1.Отражение броней(unKnown_bot).': UndefPic := '1-Забл броней урон.bmp'; '2.Радар (тылы).': UndefPic := 'Радар.bmp'; '3.Командирская камера (koshnaranek).': UndefPic := 'Командирская камера.bmp'; '4.Таймер сведения орудия в бою (Ekspoint).': UndefPic := 'таймер сведения.bmp'; '5.Винтик.': UndefPic := 'винтик.bmp'; else begin LastIndex := UNDEF_INDEX; PicForm.Hide; Exit; end; end; if not FileExists(TempPath + UndefPic) then ExtractTemporaryFile(UndefPic); ShowPicHint(TempPath + UndefPic); finally LastIndex := Index; end; end; procedure CompOnMouseLeave(Sender: TObject); begin PicForm.Hide; LastIndex := -1; end; procedure InitInfo(); begin WizardForm.ComponentsList.OnItemMouseMove := @CompOnItemMouseMove; WizardForm.ComponentsList.OnMouseLeave := @CompOnMouseLeave; TempPath := AddBackslash(ExpandConstant('{tmp}')); LastIndex := UNDEF_INDEX; PicForm := TForm.Create(WizardForm) with PicForm do begin BorderStyle := bsNone; FormStyle := fsStayOnTop; InfoPic := TBitmapImage.Create(PicForm) with InfoPic do begin Parent := PicForm; AutoSize := True; end; end; SetWindowLong(PicForm.Handle, GWL_EXSTYLE, GetWindowLong(PicForm.Handle, GWL_EXSTYLE) or WS_EX_LAYERED); SetLayeredWindowAttributes(PicForm.Handle, 0, ALPHA_BLEND_LEVEL, LWA_ALPHA); end; procedure InitializeWizard2(); begin InitInfo(); end; [setup] ; --- Dispatching code ------------------------------------------------------------ [Code] procedure CurStepChanged(CurStep: TSetupStep); begin CurStepChanged1(CurStep); end; procedure InitializeWizard(); begin InitializeWizard1(); InitializeWizard2(); end; @gmail.com> Quote Share this post Link to post Short link Share on other sites
Lom 48 #365986 Posted November 16, 2016 #define WotVersion "0.9.16" #include "SHFileOperation.iss"; [Code] var DeleteRadioButton, MoveRadioButton, NoneRadioButton: TRadioButton; DeleteCashAndLogsCheckBox, DeleteUpdatesCheckBox: TCheckBox; const DeleteDescText = 'Установщик удалит все файлы в папках.'; MoveDescText = 'Установщик сделает резервную копию файлов.'; NoneDescText = 'Установщик не будет ничего трогать.'; function BackupCheck_1(): Boolean; var DeleteDescLabel, MoveDescLabel, NoneDescLabel: TLabel; begin DeleteRadioButton:=TRadioButton.Create(WizardForm); DeleteRadioButton.SetBounds(0, 120, WizardForm.RunList.Width, 20) DeleteRadioButton.Checked:=True; DeleteRadioButton.Caption:='Удалить моды'; DeleteRadioButton.Parent:=WizardForm.SelectDirPage; DeleteDescLabel:=TLabel.Create(WizardForm); DeleteDescLabel.Parent:=WizardForm.SelectDirPage; DeleteDescLabel.Left:=0; DeleteDescLabel.Top:=DeleteRadioButton.Top + DeleteRadioButton.Height; DeleteDescLabel.Width:=WizardForm.SelectDirPage; DeleteDescLabel.Height:=20; DeleteDescLabel.AutoSize:=False; DeleteDescLabel.Wordwrap:=True; DeleteDescLabel.Caption:=DeleteDescText; MoveRadioButton:=TRadioButton.Create(WizardForm); MoveRadioButton.SetBounds(0, 160, WizardForm.RunList.Width, 20) MoveRadioButton.Checked:=False; MoveRadioButton.Caption:='Сделать резервную копию модов'; MoveRadioButton.Parent:=WizardForm.SelectDirPage; MoveDescLabel:=TLabel.Create(WizardForm); MoveDescLabel.Parent:=WizardForm.SelectDirPage; MoveDescLabel.Left:=0; MoveDescLabel.Top:=MoveRadioButton.Top + MoveRadioButton.Height; MoveDescLabel.Width:=WizardForm.SelectDirPage; MoveDescLabel.Height:=20; MoveDescLabel.AutoSize:=False; MoveDescLabel.Wordwrap:=True; MoveDescLabel.Caption:=MoveDescText; NoneRadioButton:=TRadioButton.Create(WizardForm); NoneRadioButton.SetBounds(0, 200, WizardForm.RunList.Width, 20) NoneRadioButton.Checked:=False; NoneRadioButton.Caption:='Ничего не трогать'; NoneRadioButton.Parent:=WizardForm.SelectDirPage; NoneDescLabel:=TLabel.Create(WizardForm); NoneDescLabel.Parent:=WizardForm.SelectDirPage; NoneDescLabel.Left:=0; NoneDescLabel.Top:=NoneRadioButton.Top + NoneRadioButton.Height; NoneDescLabel.Width:=WizardForm.SelectDirPage; NoneDescLabel.Height:=20; NoneDescLabel.AutoSize:=False; NoneDescLabel.Wordwrap:=True; NoneDescLabel.Caption:=NoneDescText; DeleteCashAndLogsCheckBox:=TCheckBox.Create(WizardForm); DeleteCashAndLogsCheckBox.SetBounds(0, 240, WizardForm.RunList.Width, 20) DeleteCashAndLogsCheckBox.Checked:=True; DeleteCashAndLogsCheckBox.Caption:='Очистить кэш и логи'; DeleteCashAndLogsCheckBox.Parent:=WizardForm.SelectDirPage; DeleteUpdatesCheckBox:=TCheckBox.Create(WizardForm); DeleteUpdatesCheckBox.SetBounds(150, 240, WizardForm.RunList.Width, 20) DeleteUpdatesCheckBox.Checked:=True; DeleteUpdatesCheckBox.Caption:='Очистить папку Updates, освободив место на диске'; DeleteUpdatesCheckBox.Parent:=WizardForm.SelectDirPage; end; function BackupCheck_2(): Boolean; begin If DeleteRadioButton.Checked then begin DelTree(ExpandConstant('{app}\res_mods\{#WotVersion}'), True, True, True); DelTree(ExpandConstant('{app}\res_mods\configs'), True, True, True); DelTree(ExpandConstant('{app}\res_mods\mods'), True, True, True); CreateDir(ExpandConstant('{app}\res_mods\{#WotVersion}')); end; end; function BackupCheck_3(): Boolean; begin If MoveRadioButton.Checked then begin MoveDir(ExpandConstant('{app}\res_mods\{#WotVersion}\'),ExpandConstant('{app}\res_mods\backup\{#WotVersion}')); MoveDir(ExpandConstant('{app}\res_mods\configs\'),ExpandConstant('{app}\res_mods\backup\configs')); MoveDir(ExpandConstant('{app}\res_mods\mods\'),ExpandConstant('{app}\res_mods\backup\mods')); CreateDir(ExpandConstant('{app}\res_mods\{#WotVersion}')); DelTree(ExpandConstant('{app}\res_mods\configs'), True, True, True); DelTree(ExpandConstant('{app}\res_mods\mods'), True, True, True); end; end; function BackupCheck_4(): Boolean; begin If DeleteCashAndLogsCheckBox.Checked then begin DelTree(ExpandConstant('{userappdata}\wargaming.net\WorldOfTanks\account_caches'), True, True, True); DelTree(ExpandConstant('{userappdata}\wargaming.net\WorldOfTanks\battle_results'), True, True, True); DelTree(ExpandConstant('{userappdata}\wargaming.net\WorldOfTanks\custom_data'), True, True, True); DelTree(ExpandConstant('{userappdata}\wargaming.net\WorldOfTanks\dossier_cache'), True, True, True); DelTree(ExpandConstant('{userappdata}\wargaming.net\WorldOfTanks\tutorial_cache'), True, True, True); DeleteFile(ExpandConstant('{app}\python.log')); DeleteFile(ExpandConstant('{app}\xvm.log')); end; end; function BackupCheck_5(): Boolean; begin If DeleteUpdatesCheckBox.Checked then begin DelTree(ExpandConstant('{app}\Updates'), True, True, True); CreateDir(ExpandConstant('{app}\Updates')); end; end; procedure CurStepChanged(CurStep: TSetupStep); begin if CurStep = ssInstall then begin BackupCheck_2(); BackupCheck_3(); BackupCheck_4(); BackupCheck_5(); end; end; procedure InitializeWizard1(); begin BackupCheck_1(); end; #ifdef UNICODE #define A "W" #else #define A "A" #endif const UNDEF_INDEX = -777; ALPHA_BLEND_LEVEL = 255; // max=Byte=255 WS_EX_LAYERED = $80000; WS_EX_TRANSPARENT = $20; LWA_COLORKEY = 1; LWA_ALPHA = 2; GWL_EXSTYLE = (-20); var InfoPic: TBitmapImage; LastIndex: Integer; TempPath: String; PicForm: TForm; type COLORREF = DWORD; function GetCursorPos(var lpPoint: TPoint): BOOL; external '[email protected] stdcall'; function SetLayeredWindowAttributes(Hwnd: THandle; crKey: COLORREF; bAlpha: Byte; dwFlags: DWORD): Boolean; external '[email protected] stdcall'; function GetWindowLong(hWnd: HWND; nIndex: Integer): Longint; external 'GetWindowLong{#A}@user32.dll stdcall'; function SetWindowLong(hWnd: HWND; nIndex: Integer; dwNewLong: Longint): Longint; external 'SetWindowLong{#A}@user32.dll stdcall'; function SetFocus(hWnd: HWND): HWND; external '[email protected] stdcall'; procedure ShowPicHint(const PicFilePath: String); var pt: TPoint; begin if not GetCursorPos(pt) then Exit; InfoPic.Bitmap.LoadFromFile(PicFilePath); try with PicForm do begin SetBounds(ScaleX(pt.x + 390), ScaleY(pt.y + 7), InfoPic.Width, InfoPic.Height); Show; end; finally SetFocus(WizardForm.Handle); end; end; procedure CompOnItemMouseMove(Sender: TObject; X, Y: Integer; Index: Integer; Area: TItemArea); var UndefPic: String; begin if Index = -1 then Exit; if Index = LastIndex then Exit; try case TNewCheckListBox(Sender).ItemCaption[Index] of '1.Отражение броней(unKnown_bot).': UndefPic := '1-Забл броней урон.bmp'; '2.Радар (тылы).': UndefPic := 'Радар.bmp'; '3.Командирская камера (koshnaranek).': UndefPic := 'Командирская камера.bmp'; '4.Таймер сведения орудия в бою (Ekspoint).': UndefPic := 'таймер сведения.bmp'; '5.Винтик.': UndefPic := 'винтик.bmp'; else begin LastIndex := UNDEF_INDEX; PicForm.Hide; Exit; end; end; if not FileExists(TempPath + UndefPic) then ExtractTemporaryFile(UndefPic); ShowPicHint(TempPath + UndefPic); finally LastIndex := Index; end; end; procedure CompOnMouseLeave(Sender: TObject); begin PicForm.Hide; LastIndex := -1; end; procedure InitInfo(); begin WizardForm.ComponentsList.OnItemMouseMove := @CompOnItemMouseMove; WizardForm.ComponentsList.OnMouseLeave := @CompOnMouseLeave; TempPath := AddBackslash(ExpandConstant('{tmp}')); LastIndex := UNDEF_INDEX; PicForm := TForm.Create(WizardForm) with PicForm do begin BorderStyle := bsNone; FormStyle := fsStayOnTop; InfoPic := TBitmapImage.Create(PicForm) with InfoPic do begin Parent := PicForm; AutoSize := True; end; end; SetWindowLong(PicForm.Handle, GWL_EXSTYLE, GetWindowLong(PicForm.Handle, GWL_EXSTYLE) or WS_EX_LAYERED); SetLayeredWindowAttributes(PicForm.Handle, 0, ALPHA_BLEND_LEVEL, LWA_ALPHA); end; procedure InitializeWizard2(); begin InitInfo(); end; procedure InitializeWizard(); begin InitializeWizard1(); InitializeWizard2(); end; а вот за этот скрипт ОГРОМНОЕ СПАСИБО!!! реально в человеческом виде а не как у меня)))) 1 Quote Share this post Link to post Short link Share on other sites
AtotIK 580 #365987 Posted November 16, 2016 Читаю и смеюсь... 1 1 Quote Share this post Link to post Short link Share on other sites
Lom 48 #365993 Posted November 16, 2016 Читаю и смеюсь... ты бы не смеялся подсказал что не так то ))))) не все же спецы как вы! 1 Quote Share this post Link to post Short link Share on other sites
AtotIK 580 #365995 Posted November 16, 2016 (edited) Так спрашивали бы по делу, что-то интересное, а не то "как скрипты объединить". Берёшь и объединяешь. В 90% случаев нет ничего сверхъестественного в этом и сводится к подключению процедуры в главную. Edited November 16, 2016 by AtotIK 2 Quote Share this post Link to post Short link Share on other sites
Draug 59 #365999 Posted November 16, 2016 Так спрашивали бы по делу, что-то интересное, а не то "как скрипты объединить". Берёшь и объединяешь. В 90% случаев нет ничего сверхъестественного в этом и сводится к подключению процедуры в главную. если бы вот такой скрипт, который мне выслали выше был бы в шапке темы 70% этого топа вопросов бы не существовало... я перечитывал много инфы в ино сетап, мозг чуть не сплавился, все уводит куда то в сторону, не в те степя, а дельный рабочий пример скрипта самое оно, больше ничего и не надо! 3 1 Quote Share this post Link to post Short link Share on other sites
Nowik1971 2 #366006 Posted November 16, 2016 Читаю и смеюсь... Вахаха я то же улыбаюсь ведь конкретно ответил на вопрос КАК скрипты объединить? вот и сделал, тем более в инно это все на автомате делается... а чтобы работало вопроса не было!!! Так спрашивали бы по делу, что-то интересное, а не то "как скрипты объединить". Берёшь и объединяешь. В 90% случаев нет ничего сверхъестественного в этом и сводится к подключению процедуры в главную. вот и я ответил прямо на поставленный вопрос, его по делу не было... Парни здесь велосипед изобретают, хотя в теме все почти есть... пытаются все что кусками в одно собрать, а учиться и не пробуют некоторые!.... каждому я давал полный исходник модпака, но им надо не так как надо , а по своему... вот поэтому и вопросы такие, даже исходник готового многостраничного пака им не нужен и поучить его не желают, просят все за них и под них сделать, так идите в платный раздел и вам там все наклепают за грины! Quote Share this post Link to post Short link Share on other sites
Draug 59 #366013 Posted November 16, 2016 (edited) Вахаха я то же улыбаюсь ведь конкретно ответил на вопрос КАК скрипты объединить? вот и сделал, тем более в инно это все на автомате делается... а чтобы работало вопроса не было!!! вот и я ответил прямо на поставленный вопрос, его по делу не было... Парни здесь велосипед изобретают, хотя в теме все почти есть... пытаются все что кусками в одно собрать, а учиться и не пробуют некоторые!.... каждому я давал полный исходник модпака, но им надо не так как надо , а по своему... вот поэтому и вопросы такие, даже исходник готового многостраничного пака им не нужен и поучить его не желают, просят все за них и под них сделать, так идите в платный раздел и вам там все наклепают за грины! спс дружище за помощь в личке и то что поделился скриптом! Он очень навороченный в отличии от моего первобытного минималистика состоящиго из одного скрипта! Твой мега пак из десятка скриптов я в данный момент сижу изучаю и запиливаю под себя, это не за один день делается... а обновления много выходит ежедневно у меня достаточно много скачек вот например менее за сутки только с яндекс диск а а сегодня запилил с обновленным установщиком, со скриптом что выше... твой скрипт в процессе изучения и запиливания, если получится привыкнуть к такой сложной для меня системе)) Edited November 16, 2016 by Draug Quote Share this post Link to post Short link Share on other sites
night_dragon_on 5,601 #366019 Posted November 16, 2016 (edited) Подскажите, как сделать чтобы при наведении мышкой на название мода появлялась картинка? А смысл в этом глючном скрипте? Есть бесплатная библиотека (дополнение) для Inno Setup с наименованием botva2 (или просто ботва). Позволяет настроить под себя множество элементов инсталлятора на свой лад и вкус, но для этого в ней нужно разобраться покопавшись в примерах поставляемых с этой библиотекой. Небольшой пример добавления чекбокса (на вывод компонента для установки) с превьюшкой в виде изображения. 'Example: Components page' [Files] Source: "Skin\res\image\Checkbox.png"; DestDir: "{tmp}"; Flags: ignoreVersion dontcopy; Source: "Skin\res\image_preview\Battle_5.png"; DestDir: "{tmp}"; Flags: ignoreVersion dontcopy; [CustomMessages] Battle_5=Индикатор направления обстрела [Code] var Battle_5_CheckBox: HWND; Battle_5_Label: TLabel; Battle_5_Preview: Longint; function Battle_5: Boolean; begin Result:= BtnGetChecked(Battle_5_CheckBox); end; Procedure Battle_5_Click(hBtn:HWND); begin if BtnGetChecked(Battle_5_CheckBox) then begin BtnSetChecked(Battle_1_CheckBox,true); end; end; Procedure Battle_5_MouseMove(hBtn:HWND); begin ImgSetVisibility(Battle_5_Preview,true); ImgApplyChanges(WizardForm.Handle); end; Procedure Battle_5_MouseLeave(hBtn:HWND); begin ImgSetVisibility(Battle_5_Preview,false); ImgApplyChanges(WizardForm.Handle); end; procedure IW_Components_Battle(); begin ExtractTemporaryFile('Checkbox.png'); ExtractTemporaryFile('Battle_5.png'); Battle_5_Preview:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\Battle_5.png'),ScaleX(401),ScaleY(132),ScaleX(250),ScaleY(250),true,true); ImgSetVisibility(Battle_5_Preview,false); Battle_5_CheckBox:=BtnCreate(WizardForm.Handle,ScaleX(36),ScaleY(81),ScaleX(13),ScaleY(13),ExpandConstant('Checkbox.png'),0,true); BtnSetEvent(Battle_5_CheckBox,BtnClickEventID,WrapBtnCallback(@Battle_5_Click,1)); BtnSetEvent(Battle_5_CheckBox,BtnMouseMoveEventID,WrapBtnCallback(@Battle_5_MouseMove,1)); BtnSetEvent(Battle_5_CheckBox,BtnMouseLeaveEventID,WrapBtnCallback(@Battle_5_MouseLeave,1)); BtnSetVisibility(Battle_5_CheckBox,false); BtnSetCursor(Battle_5_CheckBox,GetSysCursorHandle(32649)); Battle_5_Label:=Create_Label_Battle(WizardForm,ScaleX(55),ScaleY(80),ScaleX(0),ScaleY(0),ExpandConstant('{cm:Battle_5}'), true); BtnSetChecked(Battle_5_CheckBox,true); end; procedure InitializeWizard(); begin IW_Components_Battle(); end; Далее на скрине описанный пример - пятый элемент сверху (в списке компонентов). Edited November 16, 2016 by night_dragon_on Quote Share this post Link to post Short link Share on other sites
AtotIK 580 #366034 Posted November 16, 2016 Слишком мудрёно через кнопку чекбоксы создавать. Ботву можно прикрутить намноно легче к компонентлисту. А если дело в фоне под чекбоксом и надписью, то это тоже можно решить. 1 Quote Share this post Link to post Short link Share on other sites
Nowik1971 2 #366360 Posted November 19, 2016 (edited) Есть вопрос. Подскажите гуру как сделать чтобы заставка сплеша воспроизводилась если я шифрую установщик Encryption=yes Password=11111 Просто пишет ошибку что dll не найден в папке темп... короче не дает его прочитать после шифрования, если отключаю то все работает.... 'Скриншот ошибки' Короче проверял темп и видел, что если не шифровать все нужные файлы копируются, а если включить шифрование, то файлы для запуска заставки не копируются... перелопатил немного форумы, но так и не нашел решения... подходящего для меня.. Edited November 19, 2016 by Nowik1971 Quote Share this post Link to post Short link Share on other sites
akey 35 #366364 Posted November 19, 2016 (edited) Есть вопрос. Подскажите гуру как сделать чтобы заставка сплеша воспроизводилась если я шифрую установщик Encryption=yes Password=11111 Просто пишет ошибку что dll не найден в папке темп... короче не дает его прочитать после шифрования, если отключаю то все работает.... 'Скриншот ошибки' Короче проверял темп и видел, что если не шифровать все нужные файлы копируются, а если включить шифрование, то файлы для запуска заставки не копируются... перелопатил немного форумы, но так и не нашел решения... подходящего для меня.. Так исполняемые файлы и картинки вроде нельзя криптовать вот и ругается. Пометьте те файлы что не надо криптовать флагом noencrypt если не ошибаюсь. В справке это есть. Edited November 19, 2016 by akey 1 Quote Share this post Link to post Short link Share on other sites
Nowik1971 2 #366382 Posted November 19, 2016 (edited) Спасибо уже сделал, добавил флаг, но мне надо чтобы потом dll и каритнку сплеша не могли потом тырнуть , вот как это реализовать еще не нашел... к тому же мне не надо чтобы вводили пароль пользователи, а чтобы просто шифровался модпак.... короче просто не знаю как сделать подскажите кто такое делал. Edited November 19, 2016 by Nowik1971 Quote Share this post Link to post Short link Share on other sites
AtotIK 580 #366396 Posted November 19, 2016 Есть код, который автоматом вводит пароль. Но зачем это? Quote Share this post Link to post Short link Share on other sites
akey 35 #366401 Posted November 19, 2016 Спасибо уже сделал, добавил флаг, но мне надо чтобы потом dll и каритнку сплеша не могли потом тырнуть , вот как это реализовать еще не нашел... к тому же мне не надо чтобы вводили пароль пользователи, а чтобы просто шифровался модпак.... короче просто не знаю как сделать подскажите кто такое делал. В справке это тоже есть, но если Вы используете uni вид inno это Вам не поможет. На ANSI версии сложней разложить инсталятор, но тоже можно, так что это бессмысленно заморачиваться. Пароль будет вводиться автоматом, соответственно анпакер сработает без проблем :) Quote Share this post Link to post Short link Share on other sites
Nowik1971 2 #366404 Posted November 19, 2016 (edited) В справке это тоже есть, но если Вы используете uni вид inno это Вам не поможет. На ANSI версии сложней разложить инсталятор, но тоже можно, так что это бессмысленно заморачиваться. Пароль будет вводиться автоматом, соответственно анпакер сработает без проблем :) пробуй вскрывай если сможешь и пароль сюда прямо напиши... https://yadi.sk/d/G_DyPR6txP9j4, но мне надо чтобы и длл шифровались и картинки.... Есть код, который автоматом вводит пароль. Но зачем это? Зашифровать от взлома.... распаковщиком... Edited November 19, 2016 by Nowik1971 Quote Share this post Link to post Short link Share on other sites