Ru-Board.club
← Вернуться в раздел «Программы»

» Inno Setup (создание инсталяционных пакетов)

Автор: AleSasha
Дата сообщения: 25.11.2011 13:35
TaTTDoGG


Цитата:
AleSasha
точки вы сами расставили? скиньте полностью секцию setup как она у вас есть

Точки сама расставила - просто сократила...
Просто страницы программы пока еще не существует.
Может из-за этого?
Остальные пути записаны верно.

Но почему тогда исчезает иконка у файла, если файл перенести на другой компьютер?
Автор: TaTTDoGG
Дата сообщения: 25.11.2011 13:47
AleSasha
попробуйте скложить все иконки, лицензионный соглашения, изображения рядом с iss файлом. а в секии оставить только имена файлов.
Автор: AtariUser
Дата сообщения: 25.11.2011 14:17
[Обновление]The Elder Scrolls V: Skyrim

Версия скрипта: 1.2.1




Что нового:
- Добавлена возможность добавления кнопки "Отмена" на страницу приветствия (опционально);
- Добавлена возможность использовать описание компонентов (опционально);
- Мелкие исправления;

Старые версии:
- 1.0
- 1.1
- 1.2

Скачать:
Ссылка
Автор: Snoopak96
Дата сообщения: 25.11.2011 16:46
AtariUser


+ много лишнего кода в твоём инсталле на мой взгляд.
Автор: AleSasha
Дата сообщения: 25.11.2011 20:13
TaTTDoGG

С иконкой все нормально. Она, почему-то, не показывается в Total Commander на другом компьютере, хотя версии Total Commander везде одинаковы. А в проводнике или на десктопе иконка файла видна...

Что касается Publisher, то при запуске сетап-файла пишет, что Publisher неизвестен.
Но после установки, в списке установленных программ в Control Panel, Publisher показывается правильно...
Почему так - непонятно...
Автор: TaTTDoGG
Дата сообщения: 25.11.2011 20:22
AleSasha
а кто пишет что паблишер неизвестен? сам инстяллятор или какой-нибудь касперский?
Автор: poxnanik
Дата сообщения: 25.11.2011 22:02
AtariUser
спс за обновления когда уже музон кабзон в инстал добавишь?
Автор: Devils_Night
Дата сообщения: 26.11.2011 07:34

Цитата:
зато вот проект который добавляет вашу службу в службы и запускает.
при удалении служба останавливается и удаляется.
TaTTDoGG, ты гениий, низкий тебе поклон, всё отлично работает, спасибо огромнейшее.
Сейчас заключилась проблема в следующем, не могу никак добавить ветку в реестр

Код: [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{9E220A4E-714B-44D7-BC90-4AF279AA89C3}_is1]
"IsAppInstalled"=dword:00000001
Автор: kpa61k
Дата сообщения: 26.11.2011 11:50
Здрасте всем !!! Скажите ребята как вот такое получается?

Как проверить что на твоём инсталяторе такова нет?
Автор: TaTTDoGG
Дата сообщения: 26.11.2011 12:17
kpa61k
вам нужно использовать ScaleX и ScaleY в координатах

Добавлено:
Devils_Night
а что если на финишной странице использовать код:

Код: RegWriteDWordValue(HKEY_CURRENT_USER, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{9E220A4E-714B-44D7-BC90-4AF279AA89C3}_is1','IsAppInstalled', 1);
Автор: Kizyak
Дата сообщения: 26.11.2011 13:25
Всем Доброе утро, такой вопрос как в скрипте NFS выставить картинку на каждой странице инсталлятора? Это надо в "Начало - Вставка изображений" я так понял чего то прописать?
Автор: TaTTDoGG
Дата сообщения: 26.11.2011 13:28
Kizyak
вам нужно в CurStepChanged на каждой странице выполнять код

Код: WizardImg:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\WizardImage.jpg'),ScaleX(0),ScaleY(0),WizardForm.ClientWidth,WizardForm.ClientHeight,True,True);
ImgSetVisibility(WizardImg,True); //возможно эта строчка не понадобится. попробуйте её убрать
ImgApplyChanges(WizardForm.Handle);
Автор: kpa61k
Дата сообщения: 26.11.2011 13:45
TaTTDoGG
это не у меня к счастью, просто вот есть такие репаки и их много по крайней мере они у меня так криво отображаются ну у него наормально

Возможно что и мой репак к примеру также выглядит не на моём компе ,а то дам брату а он увидит подобие такова(( Как проверить его?
Автор: Kizyak
Дата сообщения: 26.11.2011 13:45
Это в ''Начало - ПрогрессБары''
procedure CurStepChanged(CurStep: TSetupStep);
begin
сдесь?
Автор: TaTTDoGG
Дата сообщения: 26.11.2011 13:53
Kizyak
пардон. не CurStepChanged, а CurPageChanged


Код:
procedure CurPageChanged(CurPageID: Integer);
begin
case CurPageID of
wpWelcome: begin
end;
wpSelectDir: begin
end;
wpSelectTasks: begin
end;
wpInstalling: begin
end;
wpFinished: begin
end;
end;
end;
Автор: Kizyak
Дата сообщения: 26.11.2011 14:18
TaTTDoGG
сделал,

выбило ошибку

Что я неправильно сделал?
Автор: TaTTDoGG
Дата сообщения: 26.11.2011 14:28
Kizyak
а вот чего вы тогда лезите в код, если вы не знаете что число begin'ов должно быть равно числу end'ов
как я понял вам нужен готовый код...

[more=должно получиться так]

Код: [Files]
Source: "WizardImage1.jpg"; Flags: dontcopy;
Source: "WizardImage2.jpg"; Flags: dontcopy;
Source: "WizardImage3.jpg"; Flags: dontcopy;
Source: "WizardImage4.jpg"; Flags: dontcopy;
Source: "WizardImage5.jpg"; Flags: dontcopy;

[Code]
function InitializeSetup: Boolean;
begin
ExtractTemporaryFile('WizardImage1.jpg');
ExtractTemporaryFile('WizardImage2.jpg');
ExtractTemporaryFile('WizardImage3.jpg');
ExtractTemporaryFile('WizardImage4.jpg');
ExtractTemporaryFile('WizardImage5.jpg');

if not FileExists(ExpandConstant('{tmp}\botva2.dll')) then ExtractTemporaryFile('botva2.dll');
if not FileExists(ExpandConstant('{tmp}\innocallback.dll')) then ExtractTemporaryFile('innocallback.dll');
if not FileExists(ExpandConstant('{tmp}\Click.wav')) then ExtractTemporaryFile('Click.wav');
if not FileExists(ExpandConstant('{tmp}\isskin.dll')) then ExtractTemporaryFile('isskin.dll');
if not FileExists(ExpandConstant('{tmp}\Tiger.cjstyles')) then ExtractTemporaryFile('Tiger.cjstyles');
LoadSkin(ExpandConstant('{tmp}\Tiger.cjstyles'), '');
#ifdef Autorun
Result:=AutoRunExec;
#else
Result:=true;
#endif
end;

procedure CurPageChanged(CurPageID: Integer);
begin

case CurPageID of
wpWelcome: begin
WizardImg:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\WizardImage1.jpg'),ScaleX(0),ScaleY(0),WizardForm.ClientWidth,WizardForm.ClientHeight,True,True);
end;
wpSelectDir: begin
WizardImg:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\WizardImage2.jpg'),ScaleX(0),ScaleY(0),WizardForm.ClientWidth,WizardForm.ClientHeight,True,True);
end;
wpSelectTasks: begin
WizardImg:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\WizardImage3.jpg'),ScaleX(0),ScaleY(0),WizardForm.ClientWidth,WizardForm.ClientHeight,True,True);
end;
wpInstalling: begin
WizardImg:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\WizardImage4.jpg'),ScaleX(0),ScaleY(0),WizardForm.ClientWidth,WizardForm.ClientHeight,True,True);
end;
wpFinished: begin
WizardImg:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\WizardImage5.jpg'),ScaleX(0),ScaleY(0),WizardForm.ClientWidth,WizardForm.ClientHeight,True,True);
end;
end;

SetStateNewButtons;
Welcome.Font.Color := $FFFFFF;
System.Font.Color := $FFFFFF;
Catalogue.Font.Color := $FFFFFF;
#ifdef Components
Components.Font.Color := $FFFFFF;
#endif
StartMenu.Font.Color := $FFFFFF;
Tasks.Font.Color := $FFFFFF;
Installing.Font.Color :=$FFFFFF;
Finish.Font.Color := $FFFFFF;

HideComponents;
ImgSetVisibility(RequirementsPanel,False);
ImgSetVisibility(Edit,False);
ImgSetVisibility(DirFolder,False);
BtnSetVisibility(hDirBrowseBtn,False);
ImgSetVisibility(HardDrivePanel,False);
ImgSetVisibility(HDD,False);
ImgSetVisibility(GroupFolder,False);
BtnSetVisibility(hGroupBrowseBtn,False);
BtnSetVisibility(NoIconsCheck,False);
BtnSetVisibility(DesktopCheck,False);
BtnSetVisibility(QuickLaunchCheck,False);
BtnSetVisibility(DirectXCheck,False);
BtnSetVisibility(LanguageButton[1],False);
BtnSetVisibility(LanguageButton[2],False);
#ifdef Components
BtnSetVisibility(Comp1Check,False);
BtnSetVisibility(Comp2Check,False);
BtnSetVisibility(Comp3Check,False);
BtnSetVisibility(Comp4Check,False);
BtnSetVisibility(Comp5Check,False);
BtnSetVisibility(Comp6Check,False);
#endif

ShowComponents(CurPageID);
ImgApplyChanges(WizardForm.Handle);
#ifdef ISDone
UnpackingISDoneFinished(CurPageID);
#endif
#ifdef FreeArc
UnpackingArcFinished(CurPageID);
#endif
if GetArrayLength(ASysReq)>0 then
if CurPageID=SystemPage.ID then SetTimer(WizardForm.Handle,WFSysReqTimerID,1000,WrapTimerProc(@SysReqFlashing,4))
else KillTimer(WizardForm.Handle,WFSysReqTimerID);

if CurPageID=wpSelectDir then begin
OldDisk:='';
GetFreeSpaceCaption(nil);
end else if GetArrayLength(ADisk)>0 then KillTimer(WizardForm.Handle,WFDiskTimerID);
end;
Автор: kpa61k
Дата сообщения: 26.11.2011 14:32

Выбирал разрешение экрана вроде всё нормально))
TaTTDoGG а не знаете как поменять цвет текста на кнопках?

Хотелось бы их более празрачными сделать ,но на чёрном фоне текста не видно ((( и он кстати тоже как то не кректно стоит(((.


Добавлено:
не заметил , но почему то компиляция в этом виндовсе нормально текст отображает а сетап сделанный в другом виндовс тоже семь по другому хотя скрипт один и тот же
Автор: TaTTDoGG
Дата сообщения: 26.11.2011 14:41
kpa61k
изменение цвета на кнопках зависит от того как вы их создаете. если вы используете текстурированные кнопки, то при их создании указывается цвет. если это стандартные кнопки, то цвет можно поменять с помощью свойства Font.Color у каждой кнопки

Добавлено:
компилятор не умеет создавать разные исталяторы из по разных компьютеров. всё время будет один и тот же результат. всё зависит от вашей системы. возможно в неё как-нибудь стиили оформления стоит или ещё что-нибудь
Автор: Kizyak
Дата сообщения: 26.11.2011 15:10
TaTTDoGG
спасибо большое за код, но опять ошибка

хотя этот файл есть в папке InstallFiles

Автор: vintage_1
Дата сообщения: 26.11.2011 15:15
Kizyak
это ошибка означает что ты не использовал:

Код: procedure LoadSkin(lpszPath: String; lpszIniFileName: String); external 'LoadSkin@files:isskin.dll stdcall delayload setuponly';
procedure UnloadSkin(); external 'UnloadSkin@files:isskin.dll stdcall delayload setuponly';
Автор: TaTTDoGG
Дата сообщения: 26.11.2011 15:20
Kizyak
а раньше в вашем коде была такая строка?
Автор: kpa61k
Дата сообщения: 26.11.2011 15:23
TaTTDoGG Наверное стиль, потому как не помню что ставил что нет , а на счёт кнопок я их не создавал взял готовый скрипт от Snoopak96 , так как не понимаю я в этом не что и не как разобратся не могу, сначало наверно всё читать и пробовоть надо.
вот скрипт http://rghost.ru/32091451
помоги если можеш.

Автор: TaTTDoGG
Дата сообщения: 26.11.2011 15:39
kpa61k
туповатая система в этом скрипте. с цветами вообще как-то не понятно.
похоже, что в процедуре btn для каждой кнопки нужно выполнить процедуру BtnSetFontColor
в ней 5 параметров.

1 - хэндл кнопки
2 - цвет текста на кнопе в нормальном состоянии
3 - цвет текста на кнопе в подсвеченном состоянии
4 - цвет текста на кнопе в нажатом состоянии
5 - цвет текста на кнопе в отключенном состоянии

например в вашем случае в процедуре btn у вас есть код:

Код: with WizardForm.CancelButton do begin
hCancelBtn:=BtnCreate(WizardForm.Handle,495,339,100,46,ExpandConstant('{tmp}\Button1.png'),15,False);
BtnSetEvent(hCancelBtn,BtnClickEventID,WrapBtnCallback(@WizardFormBtnClick,1));
BtnSetFont(hCancelBtn,ButtonFont.Handle);
Width:=0;
Height:=0;
end;
Автор: Ololo77
Дата сообщения: 26.11.2011 16:25
- подскажите пожалуйста, как исправить кнопку 'назад'?

[more]


[code]
type
TButtonInfo = record ButtonName: array of TButton; Handle: array of HWND; Count: Integer; end;
TBtnEventProc = procedure(h:HWND);

const


BtnClickEventID = 1;
BtnMouseEnterEventID = 2;
BtnMouseLeaveEventID = 3;
BtnMouseMoveEventID = 4;

balLeft = 0;
balCenter = 1;

var
ButtonsBuff: TButtonInfo;
HCancelButton, HNextButton, HBackButton, HDirBrowseButton, HGroupBrowseButton: HWND;

function WrapBtnCallback(Callback: TBtnEventProc; ParamCount: Integer): Longword; external 'wrapcallback@files:innocallback.dll stdcall';
function BtnCreate(hParent:HWND; Left,Top,Width,Height:integer; FileName:PChar; ShadowWidth:integer; IsCheckBtn:boolean):HWND; external 'BtnCreate@{tmp}\botva2.dll stdcall delayload';
procedure BtnSetPosition(h:HWND; NewLeft, NewTop, NewWidth, NewHeight: integer); external 'BtnSetPosition@files:botva2.dll stdcall';
procedure BtnRefresh(h:HWND); external 'BtnRefresh@files:botva2.dll stdcall';
function BtnGetChecked(h:HWND):boolean; external 'BtnGetChecked@files:botva2.dll stdcall';
procedure BtnSetChecked(h:HWND; Value:boolean); external 'BtnSetChecked@files:botva2.dll stdcall';
procedure BtnSetText(h:HWND; Text:PAnsiChar); external 'BtnSetText@{tmp}\botva2.dll stdcall delayload';
procedure BtnSetTextAlignment(h:HWND; HorIndent, VertIndent:integer; Alignment:DWORD); external 'BtnSetTextAlignment@files:botva2.dll stdcall';
procedure BtnSetVisibility(h:HWND; Value:boolean); external 'BtnSetVisibility@files:botva2.dll stdcall';
function BtnGetEnabled(h:HWND):boolean; external 'BtnGetEnabled@files:botva2.dll stdcall';
procedure BtnSetEnabled(h:HWND; Value:boolean); external 'BtnSetEnabled@{tmp}\botva2.dll stdcall delayload';
procedure BtnSetFont(h:HWND; Font:Cardinal); external 'BtnSetFont@{tmp}\botva2.dll stdcall delayload';
procedure BtnSetFontColor(h:HWND; NormalFontColor, FocusedFontColor, PressedFontColor, DisabledFontColor: Cardinal); external 'BtnSetFontColor@{tmp}\botva2.dll stdcall delayload';
procedure BtnSetEvent(h:HWND; EventID:integer; Event:Longword); external 'BtnSetEvent@files:botva2.dll stdcall';
procedure BtnSetCursor(h:HWND; hCur:Cardinal); external 'BtnSetCursor@files:botva2.dll stdcall';
function GetSysCursorHandle(id:integer):Cardinal; external 'GetSysCursorHandle@files:botva2.dll stdcall';
procedure gdipShutdown; external 'gdipShutdown@files:botva2.dll stdcall';

procedure UpdateButtons();
var I: integer;
begin
for I:=0 to (ButtonsBuff.Count-1) do begin
BtnSetEnabled(ButtonsBuff.Handle[I], ButtonsBuff.ButtonName[I].Enabled)
BtnSetVisibility(ButtonsBuff.Handle[I], ButtonsBuff.ButtonName[I].Visible)
BtnSetText(ButtonsBuff.Handle[I], ButtonsBuff.ButtonName[I].Caption)
BtnRefresh(ButtonsBuff.Handle[I])
end;
end;

procedure ButtonOnClick(hBtn: HWND);
var Btn: TButton; I: Integer;
begin
for I:=0 to (ButtonsBuff.Count-1) do begin
if hBtn = ButtonsBuff.Handle[I] then Btn:= ButtonsBuff.ButtonName[I];
end;
Btn.OnClick(Btn)
UpdateButtons;
end;

function EffectTextureButton(Handle: HWND; Button: TButton; ImageName: PAnsiChar; ShadowWidth: Integer; EnterEvent, MoveEvent, LeaveEvent: TbtnEventProc): HWND;
begin
Result:=BtnCreate(Handle, Button.Left-8, Button.Top-8, Button.Width+16, Button.Height+16, ImageName, ShadowWidth , False)
BtnSetEvent(Result, BtnClickEventID, WrapBtnCallback(@ ButtonOnClick, 1))
if EnterEvent <> nil then BtnSetEvent(Result, BtnMouseEnterEventID, WrapBtnCallback(EnterEvent, 1));
if MoveEvent <> nil then BtnSetEvent(Result, BtnMouseMoveEventID, WrapBtnCallback(MoveEvent, 1));
if LeaveEvent <> nil then BtnSetEvent(Result, BtnMouseLeaveEventID, WrapBtnCallback(LeaveEvent, 1));
BtnSetFont(Result, Button.Font.Handle)
BtnSetText(Result, Button.Caption);
BtnSetVisibility(Result, Button.Visible);
BtnSetFontColor(Result,clBlack,clBlack,clBlack,clGray);
BtnSetCursor(Result,GetSysCursorHandle(32649));
Button.Width:=0; Button.Height:= 0;
SetArrayLength(ButtonsBuff.Handle, ButtonsBuff.Count+1);SetArrayLength(ButtonsBuff.ButtonName, ButtonsBuff.Count+1);
ButtonsBuff.ButtonName[ButtonsBuff.Count]:= Button; ButtonsBuff.Handle[ButtonsBuff.Count]:= Result;
ButtonsBuff.Count:= ButtonsBuff.Count+1;
end;

procedure ButtonChangeFont(ButtonHandle: HWND; Font: TFont; NormalColor, FocusedColor, PressedColor, DisabledColor: Cardinal);
begin
if Font <> nil then BtnSetFont( ButtonHandle, Font.Handle);
BtnSetFontColor(ButtonHandle, NormalColor, FocusedColor, PressedColor, DisabledColor)
end;

procedure InitializeWizard();
begin
ExtractTemporaryFile('Button.png')
HNextButton:= EffectTextureButton(WizardForm.Handle, WizardForm.NextButton, ExpandConstant('{tmp}\Button.png'), 18, nil, nil, nil)
HCancelButton:= EffectTextureButton(WizardForm.Handle, WizardForm.CancelButton, ExpandConstant('{tmp}\Button.png'), 18, nil, nil, nil)
HBackButton:= EffectTextureButton(WizardForm.Handle, WizardForm.BackButton, ExpandConstant('{tmp}\Button.png'), 18, nil, nil, nil)
HDirBrowseButton:= EffectTextureButton(WizardForm.Handle, WizardForm.DirBrowseButton, ExpandConstant('{tmp}\Button.png'), 18, nil, nil, nil)
HGroupBrowseButton:= EffectTextureButton(WizardForm.Handle, WizardForm.GroupBrowseButton, ExpandConstant('{tmp}\Button.png'), 18, nil, nil, nil)
end;

procedure CurPageChanged(CurPageId: Integer);
begin
UpdateButtons
end;

procedure DeinitializeSetup();
begin
gdipShutdown
end;
[/more]
Автор: TaTTDoGG
Дата сообщения: 26.11.2011 16:36
Ololo77
наверн чтобы что-то изменить нужно переписывать пол вашего кода ))


Код: Result:=BtnCreate(Handle, Button.Left-8, Button.Top-8, Button.Width+16, Button.Height+16, ImageName, ShadowWidth , False)
Автор: Ololo77
Дата сообщения: 26.11.2011 17:02
TaTTDoGG
Спасибо, буду пробовать.
P.S. Код не мой, где-то на просторах сети нашел.
P.P.S. Не помогло..
Автор: TaTTDoGG
Дата сообщения: 26.11.2011 17:14
Ololo77
скинь скрипт полностью. я поколдую немного
Автор: Shegorat
Дата сообщения: 26.11.2011 17:51
Ololo77 18:25 26-11-2011
Цитата:
подскажите пожалуйста, как исправить кнопку 'назад'?


Цитата:
EffectTextureButton(WizardForm.Handle, WizardForm.NextButton, ExpandConstant('{tmp}\Button.png'), 18, nil, nil, nil)

Уменьши выделенный параметр у всех процедур, поставь допустим 2 или 4. Должно помочь.
А вообще мне бы надо переписать этот код, он давно устарел...

TaTTDoGG 19:14 26-11-2011
Цитата:
скинь скрипт полностью. я поколдую немного

Насколько я помню, это и есть полный текст модуля. Я там вроде ничего больше не писал...
Автор: Ololo77
Дата сообщения: 26.11.2011 19:57
Shegorat
Не помогло.

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177

Предыдущая тема: поиск


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.