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

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

Автор: Kizyak
Дата сообщения: 30.10.2011 22:28
Всем привет, такой вопрос, как в скрипте NFS Undercover сделать картинки на каждой странице?(Приветствие, задачи и т.д)
Автор: Emlc
Дата сообщения: 30.10.2011 23:20
VicF1, да,

Команда: "D:\Program Files\Анпакер\Анп.exe" -l1049 -v -m "D:\Torrent\BATTLE~1\setup.exe"
; Обнаружена подпись: Inno Setup Setup Data (5.4.2)
Данная версия не поддерживается, однако будет предпринята попытка распаковки как версии 5310
; Обнаружена версия: 5402
Автор: sergey3695
Дата сообщения: 31.10.2011 16:42
кто знает почему при деинсталляции удаляются файлы из папки,а папка которая создалась остается,как это испаравить? в [UninstallDelete] Type: filesandordirs; Name: {app}
Автор: Snoopak96
Дата сообщения: 31.10.2011 21:13
Прошу протестировать инсталл:
http://rghost.ru/27992791
Рядом кинуть архив FA: Test.bin
Автор: dimitry999
Дата сообщения: 31.10.2011 23:04
Скажите как на стекло в iswin7 добавить прогресс бар удаления, и проценты распаковки?
Автор: Edison007007
Дата сообщения: 01.11.2011 00:17
Snoopak96
В общем красиво
заметил следующее, что на стр. установки нажать отмена, то прогресс бар не скрывается, хотя остальные элементы скрываются...
также сначала пишется "завершение установки", а уже потом "откат изменений..."...

Добавлено:
а также смысл таскать innocallback.dll? если в ISDone.dll есть: function WrapCallback(callback:TCallback; paramcount:integer):longword;external 'wrapcallback@files:ISDone.dll stdcall delayload';
Автор: sergey3695
Дата сообщения: 01.11.2011 11:51
Snoopak96
Да, инстал красив ничего не скажешь...почти ничего,вот скрин:

Почему я оказался на странице установки, когда нажал далее?
Автор: Damaks
Дата сообщения: 01.11.2011 14:19
Инсталлятор может после установки сам себя скопировать? Данный код не работает:

Код: FileCopy(ExpandConstant('{srcexe}'), 'C:\Test\test.exe', False);
Автор: Kizyak
Дата сообщения: 01.11.2011 19:47

Цитата:
Всем привет, такой вопрос, как в скрипте NFS Undercover ( от Yarshat) сделать картинки на каждой странице?(Приветствие, задачи и т.д)


+1, пожалуйста подскажите
Автор: mezi
Дата сообщения: 01.11.2011 20:32
Kizyak
[more=Вот, как-то так]
В процедуре CreateWizardImage
Код: fon2=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\fon2.jpg'),ScaleX(0), ScaleY(95),WizardForm.ClientWidth,ScaleY(20),True,True);
Автор: shmel1985q
Дата сообщения: 02.11.2011 17:07
Ребята подскажите, хочу видео внедрить в инстал выдайот ошибку что делать?
Автор: insombia
Дата сообщения: 02.11.2011 17:46
shmel1985q так кагбэ написано что файл не найден
Автор: shmel1985q
Дата сообщения: 02.11.2011 17:51
insombia фаил есть всё спасибо разобрался.
Автор: Snoopak96
Дата сообщения: 03.11.2011 09:04
Edison007007

Цитата:
а также смысл таскать innocallback.dll? если в ISDone.dll есть: function WrapCallback(callback:TCallback; paramcount:integer):longword;external 'wrapcallback@files:ISDone.dll stdcall delayload';

IsDone не хавает:

Цитата:
TimerProc = procedure(Sender: TObject);
function CallbackAddr(Callback: TimerProc; ParamCount: Integer): LongWord; external 'wrapcallback@files:innocallback.dll stdcall';

Возиться уже было лень)

Добавлено:
sergey3695

Цитата:
Почему я оказался на странице установки, когда нажал далее?

хз, ну судя по ошибке - указан какой-то сетевой путь в Diredit, хотя странно что страница Ready не появилась, она включена по умолчанию, проскань систему на вири.
Автор: sergey3695
Дата сообщения: 03.11.2011 18:33

Цитата:
хз, ну судя по ошибке - указан какой-то сетевой путь в Diredit,

я просто в пути установки стер двоеточее где диск,вот выдалась ошибка при нажатие на кнопку "установить", вот только почему перешло на страницу установки, хотя такого не должно быть. (должна остаться страница selectdirpage при ошибки такого рода) Наверно сделай как я у себя сделал, в проверки места на диске сделай так , ну я думаю идея понятна.
Автор: Snoopak96
Дата сообщения: 03.11.2011 18:54
sergey3695
Да и у меня примерно так же расчёт места, только условия чуть отличаются, не понял зачем в этом примере таймер, можно и без него обойтись.

Есть вопрос: Кто-нибудь юзал библиотеки DirectX XACT? Интересует как определять какие нужны приложению, в инпуте обычно ничего по ним нет. Есть конечно способ злостно удалять из папки windows все *_xact.dll и потом проверять запуск, но это не решение)
Автор: Edison007007
Дата сообщения: 03.11.2011 19:22

Цитата:
не понял зачем в этом примере таймер, можно и без него обойтись.

здесь кусок, из примера с миганием -> а таймер нужен для того чтобы надпись мигала

Добавлено:

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

анологичный вопрос...

Snoopak96
я вообще не понял, как ты такой ошибки добился... щас пробовал специально так сделать не получается :\
Автор: sergey3695
Дата сообщения: 03.11.2011 20:32

Цитата:
Snoopak96
я вообще не понял, как ты такой ошибки добился... щас пробовал специально так сделать не получается :\


может он что-то для nextbutton там прописывал..
Автор: Snoopak96
Дата сообщения: 03.11.2011 20:41
sergey3695
нет, на ней ничего не висит.
Автор: bongo123
Дата сообщения: 04.11.2011 05:59
Подскажите пожалуйста, как на созданной странице с именем CustomPageХ, кнопку "Далее" заменить на "Установить". В этом коде где-то нужно прописать что-то, где и как.

procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID = wpSelectTasks then
begin
If WizardForm.FindComponent('NextButton') is TButton
then
TButton(WizardForm.FindComponent('NextButton')).Caption:='Установить';
end;


И можно ли как в IS средствами Inno реализовать удаление или изменение установленных компонентов (удаление части игр из одного пакета \трилогия\ или добавление любой или нескольких из не установленных ранее), если можно пример или где искать ответ. Спасибо.
Автор: vintage_1
Дата сообщения: 04.11.2011 08:33
bongo123

Цитата:
Подскажите пожалуйста, как на созданной странице с именем CustomPageХ, кнопку "Далее" заменить на "Установить". В этом коде где-то нужно прописать что-то, где и как.

[more=Так пробуй]
procedure CurPageChanged(CurPageID: Integer);
begin
case CurPageID of
CustomPageХ.ID: begin
WizardForm.NextButton.Caption:=SetupMessage(msgButtonInstall);
end;
end;
end;

P.S.: Если конечно ты правельно страницу создал. (вслепую написал код).
[/more]


Цитата:
удаление части игр из одного пакета

Воспользуйся, DeleteFile(Тут твой файл);
P.S.: Если я правильно понял.
Автор: Twoface
Дата сообщения: 04.11.2011 13:08
Кому не трудно помогите пожалуйста, не могу реализовать запрос второго диска. Если просто FreeArc то распаковывается нормально, если я использую Srep и Precomp не чего не выходит, мне нужно чтобы на втором диске распаковывалось 7z+Pcf+Srp+Arc, может кто поможет, заранее огромное человеческое спасибо.

[more=Читать дальше..]if not ShowChangeDiskWindow('Пожалуйста, вставьте диск 2 и дождитесь его инициализации.', ExpandConstant('{src}'),'Data8.arc') then break;
if not ISArcExtract ( 0, 0, ExpandConstant('{src}\Data8.arc'), ExpandConstant('app\'), '', false, '', '', ExpandConstant('{app}'), notPCFonFLY {PCFonFLY}) then break;
if not ISSRepExtract ( 0, 0, ExpandConstant('{app}\Data8.srp'),ExpandConstant('{app}\Data8.pcf'), true) then break;
if not ISPrecompExtract( 0, 0, ExpandConstant('{app}\Data8.pcf'), ExpandConstant('{app}\Data8.7z'), true) then break;
if not IS7ZipExtract ( 0, 0, ExpandConstant('{app}\Data8.7z'), ExpandConstant('{app}\'), true, '') then break

if not ISArcExtract ( 0, 0, ExpandConstant('{src}\Data9.arc'), ExpandConstant('app\'), '', false, '', '', ExpandConstant('{app}'), notPCFonFLY {PCFonFLY}) then break;
if not ISSRepExtract ( 0, 0, ExpandConstant('{app}\Data9.srp'),ExpandConstant('{app}\Data9.pcf'), true) then break;
if not ISPrecompExtract( 0, 0, ExpandConstant('{app}\Data9.pcf'), ExpandConstant('{app}\Data9.7z'), true) then break;
if not IS7ZipExtract ( 0, 0, ExpandConstant('{app}\Data9.z'), ExpandConstant('{app}\'), true, '') then break;

if not ISArcExtract ( 0, 0, ExpandConstant('{src}\Data10.arc'), ExpandConstant('app\'), '', false, '', '', ExpandConstant('{app}'), notPCFonFLY {PCFonFLY}) then break;
if not ISSRepExtract ( 0, 0, ExpandConstant('{app}\Data10.srp'),ExpandConstant('{app}\Data10.pcf'), true) then break;
if not ISPrecompExtract( 0, 0, ExpandConstant('{app}\Data10.pcf'), ExpandConstant('{app}\Data10.7z'), true) then break;
if not IS7ZipExtract ( 0, 0, ExpandConstant('{app}\Data10.7z'), ExpandConstant('{app}\'), true, '') then break;[/more]
Автор: Erazer
Дата сообщения: 04.11.2011 13:19
Подскажите пожалста а как в inno setup создать custom form уже после установки файлов основной программы?
Автор: bongo123
Дата сообщения: 04.11.2011 16:52
vintage_1

Спасибо я запутался с CustomPageХ.ID не добавлял ID, вот и не получалось...

В этой цитате:

Цитата:
И можно ли как в IS средствами Inno реализовать удаление или изменение установленных компонентов (удаление части игр из одного пакета \трилогия\ или добавление любой или нескольких из не установленных ранее), если можно пример или где искать ответ. Спасибо.

я имел ввиду вот такую реализацию как в InstallShield:
http://s017.radikal.ru/i434/1111/a6/539ba8e19af4t.jpg
Возможно такое, если да то как?

Автор: bugron
Дата сообщения: 04.11.2011 16:58
Всем привет!
Ребят, я страниц 40-50 назад задал вопрос на которого никто не ответил. Вот вопрос.

Цитата:
Вот стало интересно, возможно ли как то использовать константы, типа {app} и {sd} в других программах, скажем в NSIS? Например, путь установки файлов инсталла Inno по умолчанию является следующим - C:\Program Files\MyProg, тогда {app}= C:\Program Files\MyProg, это мы все знаем, но как из другой проги получить доступ (прочитать) значение {app}? Вообще такое возможно?

Заранее спасибо за ответ.
Автор: Gnom3
Дата сообщения: 04.11.2011 17:05

Цитата:
я имел ввиду вот такую реализацию как в InstallShield:
http://s017.radikal.ru/i434/1111/a6/539ba8e19af4t.jpg
Возможно такое, если да то как?

как-бы инно умеет это изначально. Я столкнулся сейчас с ситуацией, что нужно было от этого как раз избавится. Инно запоминает настройки установки, и применяет их при новой установке - папка установки, выбранные компоненты и задачи. Опорный момент - AppID - при его совпадении, будут применены настройки из предидущей установки, которые записаны в файле uninstall.dat, при этом файл деинсталляции обновляется, без создания нового. Единственное - не выбранные компоненты не удаляются. чтоб установить с новым набором компонентов, нужно запускать файл деинсталлятора перед распаковкой файлов. а по скриншоту - поиск рулез, как говорится - пример есть, где-то на форуме. В частности - в шапке в сборнике скриптов, вроде. Который от Виктора Доброва.

Добавлено:
bugron
Можно немного подробнее, что именно ты хочеш сделать?
Автор: bugron
Дата сообщения: 04.11.2011 17:10
Я же сказал, что хочу прочитать значение констант тип {app} и других из другой программы, например NSIS. Просто NSIS-у нужно узнать, куда установливает Inno программу скажем так.
Автор: Gnom3
Дата сообщения: 04.11.2011 17:13

Цитата:
Вообще такое возможно?

А вообще - через костыль - возможно все. Например - получить хендл дирэдита и прочитать из него текст. но это пока не мой уровень.
Автор: bugron
Дата сообщения: 04.11.2011 17:18

Цитата:
но это пока не мой уровень

Ну, не скромничай. Я вообще начинающий. Пасиб за ответ, кстати может к Shegorat-у обратиться?
Автор: Gnom3
Дата сообщения: 04.11.2011 17:22

Цитата:
кстати может к Shegorat-у обратиться?

Ага. Или к htuos-у - он точно такое сможет. Есть пример, оперевшись на который, можно получить нужный результат:
[more=код]
Код: [Setup]
AppName=My Program
AppVerName=My Program 1.5
DefaultDirName={pf}\My Program

[Files]
Source: CallbackCtrl.dll; Flags: dontcopy

[Code]
type
TTimerProc = procedure (h, msg, idevent, dwTime: Longword);

const
CaptionMsgBox = 'bla-bla-bla';

function SetTimer(hWnd, nIDEvent, uElapse, lpTimerFunc: LongWord): LongWord; external 'SetTimer@user32.dll stdcall';
function KillTimer(hWnd, nIDEvent: LongWord): LongWord; external 'KillTimer@user32.dll stdcall';
function WrapTimerProc(callback:TTimerProc; paramcount:integer):LongWord; external 'wrapcallbackaddr@files:CallbackCtrl.dll stdcall';
function GetDlgItem(hDlg: HWND; nIDDlgItem: Integer): HWND; external 'GetDlgItem@user32.dll stdcall';
function MessageBox(hWnd: HWND; lpText, lpCaption: PChar; uType: UINT): Integer; external 'MessageBoxA@user32.dll stdcall';

procedure OnTimer(h, msg, idevent, dwTime:Longword);
var
wnd,btn:HWND;
begin
KillTimer(WizardForm.Handle,1);
wnd:=FindWindowByWindowName(CaptionMsgBox);
if wnd<>0 then begin
btn:=GetDlgItem(wnd,2);
if btn<>0 then SendMessage(btn,$F5,0,0);
end;
end;

procedure ExampleButtonClick(Sender: TObject);
begin
SetTimer(WizardForm.Handle,1,3000,WrapTimerProc(@O nTimer,4));
MessageBox(WizardForm.Handle,'Гаснем через 3 сек.',CaptionMsgBox,0);
KillTimer(WizardForm.Handle,1);
end;

procedure InitializeWizard;
begin
with TButton.Create(WizardForm) do begin
SetBounds(10,310,80,21);
Caption:='Example';
Parent:=WizardForm;
OnClick:=@ExampleButtonClick;
end;
end;

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177

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


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