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

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

Автор: Sampron
Дата сообщения: 01.06.2007 18:12
Chuvakstepan

Цитата:
Может, что-то не так?

Конечно не так, нужно рядом с инсталлом положить папку skin и в неё закинуть скины и библиотеки а callnsis.dll включить в инсталл.
Автор: Chuvakstepan
Дата сообщения: 01.06.2007 18:19
А какие библиотеки? В папке skin - NSIS_SkinCrafter_Plugin.dll; SkinNsis.skf

Добавлено:
Работает...
Просто версия плагина была 1.0.0, а надо новую
Спасибо всем
Автор: Sampron
Дата сообщения: 01.06.2007 18:25
Chuvakstepan
http://forum.ru-board.com/topic.cgi?forum=5&topic=23235&start=580#4
Автор: Genri
Дата сообщения: 01.06.2007 18:35
Sampron
Цитата:
Хреново что не работает в деинсталляторе.
-- работает. нет времени шлифовать, на скорую руку набросал только для деинсталлятора. Если что - вернусь - поправлю

Код:
[Setup]
AppName=My Program
AppVerName=My Program v.1.2
DefaultDirName={pf}\My Program

[Files]
Source: callnsis.dll; DestDir: {app}; Flags: uninsrestartdelete
Source: NSIS_SkinCrafter_Plugin.dll; DestDir: {app}
Source: SkinCrafter.dll; DestDir: {app}; Flags: uninsrestartdelete
Source: SkinNsis.skf; DestDir: {app}

[Code]
procedure callplug(parentwnd: Integer; pluginname,funcname,param1,param2,param3,param4,param5,param6,param7,param8,param9,param10: PChar);
external 'callplug@{app}\callnsis.dll stdcall uninstallonly';

function InitializeUninstall(): Boolean;
begin
callplug(0, ExpandConstant('{app}\NSIS_SkinCrafter_Plugin.dll'),
'skin',
ExpandConstant('{app}\SkinNsis.skf'),
'','','','','','','','','');
Result:= True;
end;

Автор: Sampron
Дата сообщения: 01.06.2007 18:45
Genri
Спасибо! пашет!
Автор: omals
Дата сообщения: 01.06.2007 18:59
Sampron
огромное спс.
Автор: Sampron
Дата сообщения: 01.06.2007 19:07
omals
Та незачто! есть ещё один код где на фоновом окне в зависимости от разрешения экрана отображается картинка соответсвующего размера.
[more=код.][Setup]
AppName=AppName
AppVerName=AppVerName
DefaultDirName={pf}\AppName

[Files]
Source: 640.bmp; DestDir: {tmp}; Flags: dontcopy
Source: 800.bmp; DestDir: {tmp}; Flags: dontcopy
Source: 1024.bmp; DestDir: {tmp}; Flags: dontcopy
Source: 1152.bmp; DestDir: {tmp}; Flags: dontcopy
Source: 1280.bmp; DestDir: {tmp}; Flags: dontcopy
Source: 1600.bmp; DestDir: {tmp}; Flags: dontcopy

[Code]
function GetDC(HWND: DWord): DWord;
external 'GetDC@user32.dll stdcall';

function GetDeviceCaps(DC: DWord; Index: Integer): Integer;
external 'GetDeviceCaps@gdi32.dll stdcall';

function ReleaseDC(HWND: DWord;DC: DWord): Integer;
external 'ReleaseDC@user32.dll stdcall';

function ShowWindow(hWnd: DWord; nCmdShow: Integer): boolean;
external 'ShowWindow@user32.dll stdcall';

function SetWindowLong(hWnd: DWord; nIndex: Integer; dwNewLong: Longint): Longint;
external 'SetWindowLongA@user32.dll stdcall';

procedure InitializeWizard();
var
bgImage : TBitmapImage;
bgImageName: String;
width: integer;
dc: DWord;

begin
bgImage:=TBitmapImage.Create(MainForm)
bgImage.Align:=alClient
bgImage.Stretch:=True
bgImage.Parent:=MainForm

dc:=GetDC(MainForm.Handle)
width:=GetDeviceCaps(dc,8)
ReleaseDC(MainForm.Handle,dc)

if width <=640 then
bgImageName:='640.bmp'

else if width<=800 then
bgImageName:='800.bmp'

else if width<=1024 then
bgImageName:='1024.bmp'

else if width<=1152 then
bgImageName:='1152.bmp'

else if width<=1280 then
bgImageName:='1280.bmp'

else
bgImageName:='1600.bmp'

ExtractTemporaryFile(bgImageName)
bgImage.bitmap.LoadFromFile(expandConstant('{tmp}\'+bgImageName))

SetWindowLong(MainForm.Handle,-16,$80000000)
ShowWindow(Mainform.Handle,SW_SHOWMAXIMIZED)
end;[/more]
Автор: iTASmania_Inc
Дата сообщения: 01.06.2007 23:35
Victor_Dobrov
Прикольно переделал!
Насчёт классификации - баг серьёзный по отношению не к глюкам, а к самому инсталлятору. Кому будет приятно смотреть на красивый скин с, не знаю, как назвать - кривизной что ли.
Кстати не знаешь, как сделать кнопку Далее на странице проверки системных требований (ток мой скрипт) неактивной, если хотя бы один компонент не удовлетворяет программы.
Погляди, пожалуйста, если не сложно:
data.cod.ru/1079737802

Добавлено:
не удовлетворяет требованиям программы
Автор: Victor_Dobrov
Дата сообщения: 02.06.2007 03:44

Цитата:
Кстати не знаешь, как заблокировать кнопку Далее на странице проверки системных требований

Corona Skin & SysInfo - добавил блокировку кнопки "Далее", смотри пример в конце скрипта.
Если Билл Гейтс будет выплачивать пользователям по $1 при каждом зависании Windows, то станет банкротом через 3 года.
Автор: Chanka
Дата сообщения: 02.06.2007 07:53
Народ помогите!!! Кто поможет отредактировать этот код смещения страницы, чтобы он был как в играх 1C.

http://data.cod.ru/1080393162

[code]
procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID=wpInstalling
then
begin
WizardForm.MainPanel.Visible:=False;
WizardForm.Bevel1.Visible:=False;
WizardForm.Width:=ScaleX(395);
WizardForm.Height:=ScaleY(142);
WizardForm.Left:=ScaleX(0);
WizardForm.Top:=ScaleY(0);
WizardForm.Left:=ScaleX(MainForm.Left+20);
WizardForm.Top:=ScaleY(MainForm.Height-170);
WizardForm.InnerNotebook.Left:=ScaleX(10);
WizardForm.InnerNotebook.Top:=ScaleY(10);
WizardForm.InnerNotebook.Width:=ScaleX(370);
WizardForm.StatusLabel.Left:=ScaleX(0);
WizardForm.StatusLabel.Top:=ScaleY(0);
WizardForm.StatusLabel.Width:=WizardForm.InnerNotebook.Width;
WizardForm.FileNameLabel.Left:=ScaleX(0);
WizardForm.FileNameLabel.Top:=ScaleY(20);
WizardForm.FileNameLabel.Width:=WizardForm.InnerNotebook.Width;
WizardForm.ProgressGauge.Top:=ScaleY(40);
WizardForm.ProgressGauge.Width:=WizardForm.InnerNotebook.Width;
WizardForm.CancelButton.BringToFront;
WizardForm.CancelButton.Left:=ScaleX(154);
WizardForm.CancelButton.Top:=ScaleY(80);
end
if CurPageID=wpFinished
then
begin
WizardForm.Width:=502;
WizardForm.Height:=392;
WizardForm.Position:=poScreenCenter;
end
end;
Автор: Chuvakstepan
Дата сообщения: 02.06.2007 08:19
Подскажите как можно сделать чтобы в скинах (листбокс скинов) был Default скин? (тоесть чтобы было как было, а пользователь сам бы мог менять оболочку через кнопочку)
Автор: drakula 666
Дата сообщения: 02.06.2007 11:15
Chanka

вроде так

procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID=wpInstalling
then
begin
WizardForm.MainPanel.Visible:=False;
WizardForm.Bevel1.Visible:=False;
WizardForm.Width:=ScaleX(395);
WizardForm.Height:=ScaleY(142);
WizardForm.Left:=ScaleX(MainForm.Width-420);
WizardForm.Top:=ScaleY(MainForm.Height-170);
WizardForm.InnerNotebook.Left:=ScaleX(10);
WizardForm.InnerNotebook.Top:=ScaleY(10);
WizardForm.InnerNotebook.Width:=ScaleX(370);
WizardForm.StatusLabel.Left:=ScaleX(0);
WizardForm.StatusLabel.Top:=ScaleY(0);
WizardForm.StatusLabel.Width:=WizardForm.InnerNotebook.Width;
WizardForm.FileNameLabel.Left:=ScaleX(0);
WizardForm.FileNameLabel.Top:=ScaleY(20);
WizardForm.FileNameLabel.Width:=WizardForm.InnerNotebook.Width;
WizardForm.ProgressGauge.Top:=ScaleY(40);
WizardForm.ProgressGauge.Width:=WizardForm.InnerNotebook.Width;
WizardForm.CancelButton.Left:=ScaleX(154);
WizardForm.CancelButton.Top:=ScaleY(80);
end
if CurPageID=wpFinished
then
begin
WizardForm.Width:=502;
WizardForm.Height:=392;
WizardForm.Position:=poScreenCenter;
end
end;
Автор: Chanka
Дата сообщения: 02.06.2007 12:07
drakula 666

Разве есть какое-то сходство?
Автор: Sampron
Дата сообщения: 02.06.2007 13:37
Chanka
Попробуй [more=Так][Code]
procedure InitializeWizard();
var
MainLabel: TLabel;
begin
MainLabel:=TLabel.Create(MainForm)
MainLabel.Width:=100
MainLabel.Height:=14
MainLabel.Left:=(MainForm.Width-100)
MainLabel.Top:=(MainForm.Height-16)
MainLabel.Autosize:=False
MainLabel.Transparent:=True
MainLabel.Caption:='Copyright 2006 1C.'
MainLabel.Font.Color:=clWhite
MainLabel.Parent:=MainForm
end;

procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID=wpInstalling
then
begin
WizardForm.MainPanel.Hide
WizardForm.Bevel1.Top:=105
WizardForm.ClientHeight:=150
WizardForm.Left:=(MainForm.Left)
WizardForm.Top:=(MainForm.Height-182)
WizardForm.InnerNotebook.Top:=20
WizardForm.InnerNotebook.Height:=80
WizardForm.CancelButton.BringToFront
WizardForm.CancelButton.Top:=117
end
if CurPageID=wpFinished
then
begin
WizardForm.Width:=502
WizardForm.Height:=392
WizardForm.Center
end
end;[/more]
Автор: Chanka
Дата сообщения: 02.06.2007 14:07
Sampron

Круто!!! Спасибо!!!
Автор: iTASmania_Inc
Дата сообщения: 02.06.2007 23:23
Victor_Dobrov
Спасибо, конечно, только твой скрипт отличается от моего - а перестроить свой под твой я не смогу (мне далеко до высокого уровня в Pascal). Можешь подсказать, как заблокировать Далее на странице, созданной через function CheckSystemPage(PreviousPageId: Integer): Integer;

По этому вопросу очень прошу помощи и всех остальных!!!
http://data.cod.ru/1079737802 - здесь собственно скрипт.
Пожалуйста, загляните, кому не лень!
Автор: Victor_Dobrov
Дата сообщения: 03.06.2007 01:42
В тех строках, где у тебя меняется цвет строки на красный, добавь команду WizardForm.NextButton.Enabled:=false
Автор: CrackMe
Дата сообщения: 03.06.2007 16:32
есть код:

Код: [Icons]
Name: "{group}\Haali Reader 2.0"; Filename: "{app}\HaaliReader.exe"
Name: "{group}\Haali Reader Dictionary"; Filename: "{app}\Dic"
Name: "{group}\Haali Reader 2.0\Haali Reader Dictionary"; Filename: "{app}\Dic"
Автор: NightW0lf
Дата сообщения: 03.06.2007 17:30
CrackMe

Цитата:
Как ярлыку присвоить свою иконку , отличную от обьекта на который ведёт ссылка?

Вот:

Код:
[Icons]
Name: "{group}\Haali Reader 2.0"; Filename: "{app}\HaaliReader.exe"; IconFilename: "{app}\твоя иконка.ico";
Автор: Kindly
Дата сообщения: 04.06.2007 09:26
Inno Setup Scripting 5.1 Final Edition (уже точно финальное от меня)

- Добавлены новые примеры
- Добавлено руководство Inno Setup Extensions Knowledge Base
- Добавлены библиотеки и скрипты
- Исправлены некоторые неточности
- Изменен дизайн
- Возможность создания своей и редактирования текущей базы данных (ознакомтесь с файлом "iss.ini")
- Количество добавляемых примеров в руководстве не ограничено
- Проект переименован в "Inno Setup Example Viewer"
- Поддерживается мультиязычность руководства (сообщения об ошибках по умолчанию на английском)
- Оптимизация и реконструкция кода руководства (спасибо tavria2)
- Убрана проверка на повторный запуск руководства

http://rapidshare.com/files/35134896/iss_setup.exe.html

http://www.pirateshare.net/?id=11775060
Автор: maxdddca123
Дата сообщения: 04.06.2007 09:29
Kindly
Спасибо !
Автор: Chuvakstepan
Дата сообщения: 04.06.2007 12:02
Я поставил Windows Vista. В ней не работают скины (SkinCrafter). Так-что, глубокоуважаемые разработчики, имейте в виду что у конечного пользователя может оказаться Vista!
Автор: NightW0lf
Дата сообщения: 04.06.2007 15:45
[Удаленно!]
Автор: Sero
Дата сообщения: 04.06.2007 20:14
Chuvakstepan
Ради Inno я готов отказатся от Висты!
Автор: Chuvakstepan
Дата сообщения: 04.06.2007 20:30
Инно прекрасно работает на Висте
Если бы не работал - пришлось бы поставить старушку XP
Автор: iTASmania_Inc
Дата сообщения: 04.06.2007 23:31
Victor_Dobrov

Цитата:
В тех строках, где у тебя меняется цвет строки на красный, добавь команду WizardForm.NextButton.Enabled:=false

Блин, и это не помогает, обидно!!!

Добавлено:
Выложите кто-нибудь, пожалуйста, SkinNsis.skf или дайте ссылку на скачивание, а то чё-т совсем уже не могу найти! )
Автор: Sero
Дата сообщения: 05.06.2007 11:01

Цитата:
Выложите кто-нибудь, пожалуйста, SkinNsis.skf или дайте ссылку на скачивание, а то чё-т совсем уже не могу найти!


Вот сдесь:
data.cod.ru/1097170378
Автор: iTASmania_Inc
Дата сообщения: 05.06.2007 12:50
Sero

Цитата:
Вот сдесь

Спасибо!!!

Добавлено:
Sero
А не можешь заодно сказать, SkinCrafter.dll качается отдельно или получается, если переименовать NSIS_SkinCrafter_Plugin.dll. А то когда всё скомпилировал - в инсталляторе только кнопок нет - и никаких изменений!

Добавлено:
Код взял из Руководства по расширенным возможностям Inno Setup 5.1 от Kindly
Автор: Sampron
Дата сообщения: 05.06.2007 13:50
iTASmania_Inc
SkinCrafter.dll автоматически создается при использовании NSIS_SkinCrafter_Plugin.dll.
Автор: Sero
Дата сообщения: 05.06.2007 15:39
iTASmania_Inc
После того как ты используешь NSIS_SkinCrafter_Plugin.dll возле него появится и SkinCrafter.dll

Или сдесь:
data.cod.ru/1098743242

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768

Предыдущая тема: Mail.ru агент - вход не выполнен


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