Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 6]

Закрытая тема
Настройки темы
Скрипты Inno Setup. Помощь и советы [часть 6]

Аватара для El Sanchez

Ветеран


Contributor


Сообщения: 1274
Благодарности: 1030


Конфигурация

Профиль | Отправить PM | Цитировать


Изменения
Автор: El Sanchez
Дата: 16-02-2015
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме
Inno Setup. Прочие вопросы.


Показать/скрыть: Справка, руководство, примеры:
Показать/скрыть: Ссылки на примеры скриптов:
Показать/скрыть: Дополнительные программы для Inno Setup:
  • ISTool - неплохой редактор скриптов Inno Setup.
    Последняя версия: 5.3.0.1 [29.09.2009] - Скачать | зеркало;

  • Inno Script Generator - генератор скриптов Inno Setup. Обладает некоторыми полезными функциями, которых нет ни у самого Inno Setup, ни у ISTool.
    Последняя версия: 1.0.3.1 [23.03.2008] - Скачать | зеркало на русифицированную программу;
    Примечание: Родной сайт www.hisoft2000.de более недоступен, поэтому здесь расположены сторонние ссылки.

  • Inno Setup Form Designer - редактор страниц Inno Setup, можно создавать свои страницы.
    Последняя версия: 2.0.8 [12.11.2006] - Скачать;
    Примечание: Родной сайт http://isfd.kaju74.de/index.php?isfd более недоступен, поэтому здесь расположены сторонние ссылки.

  • Inno Setup GameScript Generator - программа генерирует скрипты для Inno Setup . С помощью GameScript Generator и Inno Setup вы сможете быстро создать простенький инсталляционный пакет для любой игры. В инсталлятор можно встроить музыку, слайдшоу и фоновый рисунок. Для специалистов созданный скрипт, возможно, будет неплохой заготовкой для дальнейшей модернизации;

  • ISSkin - Программа для создания и добавления в инсталлятор скинов. Инструкция.
    Последняя версия: 3.0.0.0 [19.01.2010] - Скачать;

  • ISSJoiner - Программа для объединения нескольких скриптов InnoSetup в один.
    Последняя версия: 3.0 [23.07.2009]

  • Converter - Программа конвертирует reg-файлы в формат *.iss (формат скриптов Inno Setup).
    Последняя версия: 0.1.4 [13.03.2010] - Скачать;


Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах:

Отправлено: 19:06, 28-03-2013

 

Ветеран


Сообщения: 510
Благодарности: 51

Профиль | Отправить PM | Цитировать


кто-то может наглядно показать как юзать в исдоне isexec через тим вивер?

Отправлено: 09:26, 02-06-2013 | #561



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Сообщения: 510
Благодарности: 51

Профиль | Отправить PM | Цитировать


можно ли на скин наложить кнопки закрыть и свернуть через ботву?

Отправлено: 22:50, 02-06-2013 | #562


Аватара для habib2302

Ветеран


Сообщения: 862
Благодарности: 102

Профиль | Отправить PM | Цитировать


insombia, через ботву я не знаю,но в шапке есть пример Наложение изображений на стандартные кнопки

можно сделать в is тип установки:установка и распаковка?

-------
Помог? От "Полезное сообщение" не откажусь!!!


Отправлено: 11:23, 03-06-2013 | #563


Пользователь


Сообщения: 148
Благодарности: 49

Профиль | Отправить PM | Цитировать


Цитата insombia:
можно ли на скин наложить кнопки закрыть и свернуть через ботву? »
каким образом? изображение можно поменять на кнопках с помощью SkinBuilder.
если ты хочешь через ботву то только так
читать дальше »
Код: Выделить весь код
#include "botva2.iss"

#define FormPic "form.png"
#define CloseBtnPic "closebtn.png"
#define MinimizeBtnPic "minimizebtn.png"

[Setup]
AppName=Temp
AppVerName=Temp
DefaultDirName={pf}\Temp
VersionInfoCopyright=VoLT

[Languages]
Name: "rus"; MessagesFile: "compiler:Languages\Russian.isl"

[Files]
Source: InstallFiles\*; DestDir: {tmp}; Flags: dontcopy sortfilesbyextension

[_code]
var
WizardImg: Longint;
hCloseBtn, hMinimizeBtn, MusicButton,
hCancelBtn, hNextBtn, hBackBtn, hDirBrowseBtn, hGroupBrowseBtn, hCancelUninstBtn: HWND;

function SetWindowLong(hWnd: Longint; nIndex: Integer; dwNewLong: Longint): Longint; external 'SetWindowLongA@user32.dll stdcall';
function GetWindowLong(hWnd, nIndex: Integer): Longint; external 'GetWindowLongA@user32 stdcall delayload';
function SetLayeredWindowAttributes(hWnd : Longint; crKey : TColor; bAlpha : byte; dwFlags : DWORD): BOOL; external 'SetLayeredWindowAttributes@user32.dll stdcall';
function ReleaseCapture(): Longint; external 'ReleaseCapture@user32.dll stdcall';

procedure CloseBtnClick(hBtn:HWND);
begin
WizardForm.Close;
end;

procedure MinimizeBtnClick(hBtn:HWND);
begin
SendMessage(WizardForm.Handle,$0112,61472,0);
end;

procedure LabelOnMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
ReleaseCapture;
SendMessage(WizardForm.Handle,$0112,$F012,0)
end;

//************************************************ [Начало - Вставка изображений] ***************************************************//

function InitializeSetup:boolean;
begin
if not FileExists(ExpandConstant('{tmp}\botva2.dll')) then ExtractTemporaryFile('botva2.dll');
if not FileExists(ExpandConstant('{tmp}\innocallback.dll')) then ExtractTemporaryFile('innocallback.dll');
Result:=True;
end;

procedure CreateWizardImage;
begin
with WizardForm do begin
BorderStyle:=bsNone;
Bevel.Hide;
InnerNotebook.Hide;
OuterNotebook.Hide;
SetBounds(ScaleX(0), ScaleY(0), ScaleX(600), ScaleY(490));
Position:=poScreenCenter;
end;

with TLabel.Create(WizardForm) do begin
Parent:=WizardForm;
AutoSize:=False;
SetBounds(ScaleX(70), ScaleY(7), ScaleX(370), ScaleY(16));
Font.Name:= 'Georgia';
Font.Size:= 9;
Transparent:=True;
Font.Color:=$FFFFFF;
Font.Style:=[fsBold, fsItalic];
OnMouseDown:=@LabelOnMouseDown;
Caption:=WizardForm.Caption;
end;

ExtractTemporaryFile('{#FormPic}');
ExtractTemporaryFile('{#CloseBtnPic}');
ExtractTemporaryFile('{#MinimizeBtnPic}');
ExtractTemporaryFile('button.png');

WizardImg:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}')+'\{#FormPic}',0,0,0,0,False,True);

ImgApplyChanges(WizardForm.Handle);

SetWindowLong(WizardForm.Handle,-20,GetWindowLong(WizardForm.Handle,-20) or $80000);
SetLayeredWindowAttributes(WizardForm.Handle,$00FF00,0,1);
end;

//************************************************ [Конец - Вставка изображений] ***************************************************//

//************************************************ [Начало - Текстуры кнопок] ***************************************************//

procedure SetStateNewButtons;
begin
with WizardForm.BackButton do begin
BtnSetText(hBackBtn,PAnsiChar(Caption));
BtnSetVisibility(hBackBtn,Visible);
BtnSetEnabled(hBackBtn,Enabled);
end;
with WizardForm.NextButton do begin
BtnSetText(hNextBtn,PAnsiChar(Caption));
BtnSetVisibility(hNextBtn,Visible);
BtnSetEnabled(hNextBtn,Enabled);
end;
with WizardForm.CancelButton do begin
BtnSetText(hCancelBtn,PAnsiChar(Caption));
BtnSetVisibility(hCancelBtn,Visible);
BtnSetEnabled(hCancelBtn,Enabled);
end;
BtnSetText(hDirBrowseBtn,PAnsiChar(WizardForm.DirBrowseButton.Caption));
BtnSetText(hGroupBrowseBtn,PAnsiChar(WizardForm.GroupBrowseButton.Caption));
end;

procedure WizardFormBtnClick(hBtn:HWND);
var
Btn:TButton;
begin
//sndPlaySound(ExpandConstant('{tmp}\Click.wav'),$0001);
case hBtn of
hCancelBtn: Btn:=WizardForm.CancelButton;
hNextBtn: Btn:=WizardForm.NextButton;
hBackBtn: Btn:=WizardForm.BackButton;
hDirBrowseBtn: Btn:=WizardForm.DirBrowseButton;
hGroupBrowseBtn: Btn:=WizardForm.GroupBrowseButton;
end;
Btn.OnClick(Btn);
SetStateNewButtons;
BtnRefresh(hBtn);
end;

procedure WFBtnEnter(hBtn:HWND);
begin
//sndPlaySound(ExpandConstant('{tmp}\WFEnter.wav'),$0001);
end;

procedure ButtonsTextures;
begin
//WFButtonFont:=TFont.Create;
//WFButtonFont.Style:=[fsBold];

with WizardForm.BackButton do begin
hBackBtn:=BtnCreate(WizardForm.Handle,225,400,90,90,ExpandConstant('{tmp}\button.png'),10,False);
BtnSetEvent(hBackBtn,BtnMouseEnterEventID,WrapBtnCallback(@WFBtnEnter,1));
BtnSetEvent(hBackBtn,BtnClickEventID,WrapBtnCallback(@WizardFormBtnClick,1));
//BtnSetFont(hBackBtn,WFButtonFont.Handle);
BtnSetFontColor(hBackBtn,$b6c4c5,$ffffff,$5d4e27,$B6B6B6);
BtnSetCursor(hBackBtn,GetSysCursorHandle(32649));
Width:=0;
Height:=0;
end;

with WizardForm.NextButton do begin
hNextBtn:=BtnCreate(WizardForm.Handle,320,400,90,90,ExpandConstant('{tmp}\button.png'),3,False);
BtnSetEvent(hNextBtn,BtnMouseEnterEventID,WrapBtnCallback(@WFBtnEnter,1));
BtnSetEvent(hNextBtn,BtnClickEventID,WrapBtnCallback(@WizardFormBtnClick,1));
//BtnSetFont(hNextBtn,WFButtonFont.Handle);
BtnSetFontColor(hNextBtn,$b6c4c5,$ffffff,$5d4e27,$B6B6B6);
BtnSetCursor(hNextBtn,GetSysCursorHandle(32649));
Width:=0;
Height:=0;
end;

with WizardForm.CancelButton do begin
hCancelBtn:=BtnCreate(WizardForm.Handle,430,400,90,90,ExpandConstant('{tmp}\button.png'),10,False);
BtnSetEvent(hCancelBtn,BtnMouseEnterEventID,WrapBtnCallback(@WFBtnEnter,1));
BtnSetEvent(hCancelBtn,BtnClickEventID,WrapBtnCallback(@WizardFormBtnClick,1));
//BtnSetFont(hCancelBtn,WFButtonFont.Handle);
BtnSetFontColor(hCancelBtn,$b6c4c5,$ffffff,$5d4e27,$B6B6B6);
BtnSetCursor(hCancelBtn,GetSysCursorHandle(32649));
Width:=0;
Height:=0;
end;

with WizardForm.DirBrowseButton do begin
hDirBrowseBtn:=BtnCreate(WizardForm.Handle,401,202,85,85,ExpandConstant('{tmp}\button.png'),10,False);
BtnSetEvent(hDirBrowseBtn,BtnMouseEnterEventID,WrapBtnCallback(@WFBtnEnter,1));
BtnSetEvent(hDirBrowseBtn,BtnClickEventID,WrapBtnCallback(@WizardFormBtnClick,1));
//BtnSetFont(hDirBrowseBtn,WFButtonFont.Handle);
BtnSetFontColor(hDirBrowseBtn,$b6c4c5,$ffffff,$5d4e27,$B6B6B6);
BtnSetCursor(hDirBrowseBtn,GetSysCursorHandle(32649));
Width:=0;
Height:=0;
end;

with WizardForm.GroupBrowseButton do begin
hGroupBrowseBtn:=BtnCreate(WizardForm.Handle,401,202,85,85,ExpandConstant('{tmp}\button.png'),10,False);
BtnSetEvent(hGroupBrowseBtn,BtnMouseEnterEventID,WrapBtnCallback(@WFBtnEnter,1));
BtnSetEvent(hGroupBrowseBtn,BtnClickEventID,WrapBtnCallback(@WizardFormBtnClick,1));
//BtnSetFont(hGroupBrowseBtn,WFButtonFont.Handle);
BtnSetFontColor(hGroupBrowseBtn,$b6c4c5,$ffffff,$5d4e27,$B6B6B6);
BtnSetCursor(hGroupBrowseBtn,GetSysCursorHandle(32649));
Width:=0;
Height:=0;
end;

hCloseBtn:=BtnCreate(WizardForm.Handle,516,35,16,16,ExpandConstant('{tmp}')+'\{#CloseBtnPic}',3,False);
BtnSetEvent(hCloseBtn,BtnMouseEnterEventID,WrapBtnCallback(@WFBtnEnter,1));
BtnSetEvent(hCloseBtn,BtnClickEventID,WrapBtnCallback(@WizardFormBtnClick,1));
BtnSetEvent(hCloseBtn,BtnClickEventID,WrapBtnCallback(@CloseBtnClick,1));
BtnSetCursor(hCloseBtn,GetSysCursorHandle(32649));

hMinimizeBtn:=BtnCreate(WizardForm.Handle,498,35,16,16,ExpandConstant('{tmp}')+'\{#MinimizeBtnPic}',3,False);
BtnSetEvent(hMinimizeBtn,BtnMouseEnterEventID,WrapBtnCallback(@WFBtnEnter,1));
BtnSetEvent(hMinimizeBtn,BtnClickEventID,WrapBtnCallback(@WizardFormBtnClick,1));
BtnSetEvent(hMinimizeBtn,BtnClickEventID,WrapBtnCallback(@MinimizeBtnClick,1));
BtnSetCursor(hMinimizeBtn,GetSysCursorHandle(32649));
end;

//************************************************ [Конец - Текстуры кнопок] ***************************************************//

procedure InitializeWizard;
begin
CreateWizardImage;
ButtonsTextures;
end;


procedure CurPageChanged(CurPageID: Integer);
begin
SetStateNewButtons;
BtnSetVisibility(hDirBrowseBtn,False);
BtnSetVisibility(hGroupBrowseBtn,False);
ImgApplyChanges(WizardForm.Handle);
end;

procedure DeinitializeSetup;
begin
gdipShutdown;
end;

Отправлено: 16:09, 03-06-2013 | #564


Ветеран


Сообщения: 510
Благодарности: 51

Профиль | Отправить PM | Цитировать


типа как тут http://i5.pixs.ru/storage/8/5/4/Welc...96_3940854.png

Отправлено: 16:39, 03-06-2013 | #565


Ветеран


Сообщения: 510
Благодарности: 51

Профиль | Отправить PM | Цитировать


habib2302 не совсем понял вопрос

Отправлено: 19:29, 03-06-2013 | #566


Аватара для habib2302

Ветеран


Сообщения: 862
Благодарности: 102

Профиль | Отправить PM | Цитировать


insombia, я хочу сделать чтобы инсталлятор устанавливал компоненты или распаковывал
вот скрин

-------
Помог? От "Полезное сообщение" не откажусь!!!


Отправлено: 19:50, 03-06-2013 | #567


Ветеран


Сообщения: 510
Благодарности: 51

Профиль | Отправить PM | Цитировать


habib2302 ну такое я не знаю как сделать,так как в первые вижу
p.s. мне кажется или оно одно и тоже что установка что распаковка?

Последний раз редактировалось insombia, 03-06-2013 в 20:39.


Отправлено: 20:14, 03-06-2013 | #568


Аватара для habib2302

Ветеран


Сообщения: 862
Благодарности: 102

Профиль | Отправить PM | Цитировать


помогите мне убрать этот диалог

-------
Помог? От "Полезное сообщение" не откажусь!!!


Отправлено: 23:16, 03-06-2013 | #569


Аватара для alert30

Ветеран


Сообщения: 1088
Благодарности: 162

Профиль | Отправить PM | Цитировать


Цитата insombia:
распаковка »
Portable

Отправлено: 06:11, 04-06-2013 | #570



Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 6]

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Скрипты Inno Setup. Помощь и советы [часть 5] El Sanchez Автоматическая установка приложений 1999 28-03-2013 19:09
Скрипты Inno Setup. Помощь и советы [часть 4] El Sanchez Автоматическая установка приложений 2099 22-05-2012 23:16
Скрипты Inno Setup. Помощь и советы [часть 3] Serega Автоматическая установка приложений 3755 26-10-2011 17:58
[архив] Скрипты Inno Setup. Помощь и советы [часть 2] Serega Автоматическая установка приложений 2651 08-11-2010 18:34
Скрипты Inno Setup Compiler QAZAK Автоматическая установка приложений 7 15-01-2007 17:59




 
Переход