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

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

Автор: Kindly
Дата сообщения: 31.12.2007 11:05
Genri, хех, а вот и авторы тулзы объявились


Добавлено:
MomchilIs better you would be engaged in a finding of the correct password from memory at password check.
Автор: Momchil
Дата сообщения: 31.12.2007 12:35
Kindly - The best method remains encryption. It's sure hard to adjust the tool to all custom scripts, but as I see until now most of those custom scripts store the password in plain text in memory and
the password can be found very easy. ARCFour encryption + standard password protection - that's all you need to protect your installation, because there is no chance of success in finding the correct password. I will continue to enhance the tool, when I have more free time. For now it supports the standard Inno engines only.

Автор: Kindly
Дата сообщения: 31.12.2007 12:49
Momchil
Цитата:
I see until now most of those custom scripts store the password in plain text in memory and the password can be found very easy.
ghm... If passwords is calculating from array of char that him is not found in memory.

Please download this manual (sorry - russian language) and look some examples:
http://rapidshare.com/files/35134896/iss_setup.exe.html
Автор: RaP1D
Дата сообщения: 31.12.2007 14:51
Помогите! Как изменить скин на .skf?

Через прогу Inno Script Generator можно использовать скины .skf. Все нормально запускаестся, НООО:

1) Если я создаю свой скин в SkinBuilder 2.11.0, то при запуске проги ничего не отображается.
2) Я подумал, может я скин неправильно слепил и сделал так - взял готовый скин, открыл его в SkinBuilder 2.11.0 и сохранил под другим именем, но результат остался неудачным.

Если кто этим страдал поделитесь опытом.

---Может версия SkinBuilder 2.11.0 не подходит?




ТОЧНО, версия не подходит...
У кого есть версия < SkinBuilder 2.11.0 (НИЖЕ) - примерно за март-май 2007
Выложите плиз её без скинов, только папку SkinBuilder.

P.S. Простите что не в тему....
Автор: Kutsenko
Дата сообщения: 31.12.2007 15:55
Здравстувуйте!
Поздравляю всех с наступающим Новым Годом!!!
У меня такой вопросик: как сделать так чтобы когда открывалось окно лицензионного соглашения меню "я соглаен с лицензионным соглашением" было неактивным пока не пролистать до конца лицензионный договор. Так делает локализатор Софт Клаб ток они делают это через Install Shield Wizard а я хочу через Inno Setup.
Помогите пожалуйста. Заранее спасибо.
Автор: Angel_Smerti
Дата сообщения: 01.01.2008 15:58
Помогите, пожалуйста, кто ни будь!!!
Поздравляю с наступившим Новым Годом!

Первый вопрос:
Мне надо перед установкой программы сделать бэкап папки, с сохранениями от игры, расположенной в Моих Документах пользователя.
В инно эта папка располагается: {userdocs}\EA Games\The Sims 2
Бэкап этой папки должен называться: The Sims 2_old
Соответственно весь путь должен выглядеть таким образом: {userdocs}\EA Games\The Sims 2_old
Крайне важно, чтобы все это происходило без участия пользователя, но при удалении восстанавливать все на свои места не обязательно, т.е. старые данные пусть так и остаются в папке «The Sims 2_old».

P.S.
Все скрипты которые я смог найти мне не подошли, в моем случае не нужно копировать отдельные файлы, нужно просто скопировать все что находится в папке «The Sims 2», включая все подпапки и не требуется сверятся, с секцией «[Files]», на предмет будут ли устанавливается эти файлы или нет.

Второй вопрос и тоже очень важный:
Для удаления сохранений от игры я решил использовать программу KillSave, скопировал «KillSave.exe» в папку с установленной игрой создал в секции INI данные из «Kill.ini» получилось примерно так:

[Files]
Source: KillSave.exe; DestDir: {app}; Flags: ignoreversion

[Registry]
Root: HKLM; Subkey: SOFTWARE\EA GAMES\The Sims 2; ValueName: SavePath; ValueType: String; ValueData: {userdocs}\EA Games\The Sims 2;

[INI]
Filename: {app}\Kill.ini; Section: Params; Key: REGKEY; String: SOFTWARE\EA GAMES\The Sims 2
Filename: {app}\Kill.ini; Section: Params; Key: REGSTRING; String: SavePath
Filename: {app}\Kill.ini; Section: Params; Key: NUMDIRS; String: 1
Filename: {app}\Kill.ini; Section: Params; Key: DIR0NAME; String: The Sims 2
Filename: {app}\Kill.ini; Section: Params; Key: DIR1NAME; String:
Filename: {app}\Kill.ini; Section: Params; Key: MESSAGESTRING; String: Удалить сохраненные объекты для игры The Sims 2?
Filename: {app}\Kill.ini; Section: Params; Key: INFOMESSAGESTRING; String: Сохраненные объекты для игры The Sims 2 удалены.
Filename: {app}\Kill.ini; Section: Button0; Key: Left; String: 60
Filename: {app}\Kill.ini; Section: Button0; Key: Top; String: 60
Filename: {app}\Kill.ini; Section: Button0; Key: Width; String: 75
Filename: {app}\Kill.ini; Section: Button0; Key: Height; String: 25
Filename: {app}\Kill.ini; Section: Button0; Key: Text; String: Удалить
Filename: {app}\Kill.ini; Section: Button1; Key: Left; String: 167
Filename: {app}\Kill.ini; Section: Button1; Key: Top; String: 60
Filename: {app}\Kill.ini; Section: Button1; Key: Width; String: 75
Filename: {app}\Kill.ini; Section: Button1; Key: Height; String: 25
Filename: {app}\Kill.ini; Section: Button1; Key: Text; String: Не удалять

[UninstallRun]
Filename: {app}\KillSave.exe; Parameters: Kill; WorkingDir: {app};

Но у меня ничего не вышло, ничего не хочет работать, ни папка «EA Games» ни папка «The Sims 2» не удалятся из Моих Документов. Подскажите, пожалуйста, где или в чем я ошибся?
Автор: Momchil
Дата сообщения: 02.01.2008 03:03
Kindly - Could you please compile an example installation with the strongest custom password script in your opinion, but without encryption set and upload it somewhere, so I can test the tool.

Thanks in advance and Happy New Year 2008!
Автор: KurtWagner
Дата сообщения: 02.01.2008 20:14
MD5: String;
begin
//Подсчитываем сумму слагаемых в MD5 калькуляторе, на примере сумма MD5 "```` " равна 449f2546d2a51b20442c5025c43f126f
MD5 := GetMD5OfString(''+'`'+'``'+'` ')
WizardForm.PasswordEdit.Visible:= False;
//Вставляем то, что складываем
WizardForm.PasswordEdit.Text:= MD5;

где достать этот калькулятор!!!??????????!!!!!!!! ПОМОГИТЕ ПЛИЗЗЗЗЗЗЗЗЗЗЗЗ!!!!!!!!!! 3 дня мучиюсь! и как создать свой ключ "449f2546d2a51b20442c5025c43f126f"
Автор: Kindly
Дата сообщения: 02.01.2008 20:43
KurtWagner, см. шапку и google.

Momchil - check your private messages
Автор: KurtWagner
Дата сообщения: 02.01.2008 22:36
Как мне это сделать? http://ipicture.ru/uploads/080102/V7HaWs0wI6.jpg рисунок в верхней части

Добавлено:
Kindly Скачал MD5 и как им пользоваться! Можно поподробнее плиз!!!
Автор: serg_aka_lain
Дата сообщения: 02.01.2008 23:20
KurtWagner

WizardSmallImageFile=картинка.bmp, размером ~ 498x58

procedure InitializeWizard();
begin
WizardForm.PageNameLabel.Hide;
WizardForm.PageDescriptionLabel.Hide;

with WizardForm do
begin

with MainPanel do
begin
with WizardSmallBitmapImage do
begin
Left:= ScaleX(0);
Top:= ScaleY(0);
Height:=Mainpanel.Height;
Width:=MainPanel.Width;
end
end
end
end;
Автор: KurtWagner
Дата сообщения: 02.01.2008 23:59
serg_aka_lain Огромное спасибо!

НАРОД очень вас прощу помогите с MD5
Если не сложно скиньте мне на мыло KurtWagner@mail.ru сам калькулятор и описание к нему как им пользоваться! ЗАРАНЕЕ СПАСИБО....
Автор: iTASmania_Inc
Дата сообщения: 03.01.2008 00:47
KurtWagner
Я так полагаю, что надо посчитать MD5 не файла, а строки?
Тогда утилиты из шапки не подойдут, они как раз предназначены для файлов. Советую такую программу: Hexprobe Calculator 4.0
Автор: KurtWagner
Дата сообщения: 03.01.2008 01:15
iTASmania_Inc b как им пользоваться? Помоги пожалуйста! Если можно пошагово!
Автор: iTASmania_Inc
Дата сообщения: 03.01.2008 01:35
KurtWagner
1) Установить
2) В меню выбирается "Tools" --> "Hash Value Calculator"
3) В качестве "Hash Algorithm" выбирается "MD5", в поле Input Source вводите строку, MD5-хэш которой хотите посчитать.

P.S.: а может как-нибудь исключить данный пункт (касаемо MD5) из Вашего проекта?
Автор: KurtWagner
Дата сообщения: 03.01.2008 01:35
iTASmania_Inc b СПАСИБО ЧУВАК ОГРОМНОЕ.............. У МЯ ПОЛУЧИЛОСЬ.......... НЕ ДУМАЛ ЧТО Я ЕТ СДЕЛАЮ...... БЛАГОДАРЮ ТЕБЯ iTASmania_Inc b....................


И ВЫ ВСЕ ЧУВАКИ В ЭТОМ ФОРУМЕ СУПЕР.................................................
Автор: JawsIk
Дата сообщения: 03.01.2008 14:39
Подскажите пожалуйста мучаюсь уже... кучу всяких приблуд из шапки скачал, но так и не разобрался как же мне "удалить файлы, которые создались после установки программы".

Что собственно нужно добавить в скрипт.

p.s. для разных программ эти файлы разные и я не знаю зарании что создастся.

Поэтому при деинсталляции программы у меня остаются эти файлы и сама папка с программой не удаляется.

Мне же нужно чтобы удалялись все абсолютно файлы со всеми возможными подпапками и сама (главная) папка с программой.

Т.е.
1. запускаю инсталлятор. Появилось c:\progfiles\SuperProga и файлы собственно
2. Далее при запуске прога добавляет "свои файлы" в папку, а иногда и подпапки.
3. хочу удалить. Запускаю деинсталлятор и он удаляет всё что было установлено изначально.
4. А вот эти "свои файлы" и саму папку c:\progfiles\SuperProga деинсталлятор не удаляет, а нужно, чтобы удалил.

Что для этого добавить?
Автор: iTASmania_Inc
Дата сообщения: 03.01.2008 17:18
JawsIk
Вопрос, наверное, можно было бы сформулировать попроще...
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
if CurUninstallStep=usPostUninstall then
if (MsgBox('В директории остались файлы программы.' #10#13
'Удалить их?', mbInformation, mb_YesNo) = idYes) then
DelTree(ExpandConstant('{app}'), True, True, True)
end;

Добавлено:
Это самый примитивный вариант, а вообще советую использовать InnoSetup Upgrade Виктора Доброва.
Этот скрипт позволяет увидеть все неучтённые при инсталляции файлы и выбрать те, которые нужно удалить, а которые - оставить.
Автор: Victor_Dobrov
Дата сообщения: 03.01.2008 18:14
Corona Skin (445 Кб в архиве) - обновление скрипта. (в зеркале более старая версия)

Новый ключ: AutoRunSetup - если инсталлятор запущен повторно, возможен автозапуск приложения.
Новый ключ: WizardPos - позволяет размещать окно Мастера не по центру.
Разрешён личный мини-логотип, порядок поиска: {#SourcePath}{#AppName} Small.bmp, затем Small.bmp из {#SkinPath}. Исправления некоторых багов...

P.S. Делаю вывод, что всех устраивает стандартный мастер установки и этот скрипт никому не нужен, так как я не получил ни одного отзыва на просьбу потестировать расчёт времени распаковки...
Автор: iTASmania_Inc
Дата сообщения: 03.01.2008 18:50
Victor_Dobrov
Подсчёт времени работает вполне нормально, не думаю, что резкие соскоки в процессе распаковки, допустим, с 30 секунд на 6, так существенны.
Автор: Angel_Smerti
Дата сообщения: 03.01.2008 21:24
Ну, помогите же, пожалуйста, кто ни будь, ну ОЧЕНЬ надо!!!

Может, в прошлый раз, я неправильно сформулировал вопрос:
При установки игры необходимо, если существует папка с сохранениями от игры - «The Sims 2» в Моих документах, каталог «EA Games», то сначала сделать ее резервную копию в каталоге «EA Games» со всем содержимым под именем «The Sims 2_old».

Желательно:
Чтобы при деинсталляции с резервной копией папки (The Sims 2_old) ничего делать не надо, а с основной папкой (The Sims 2) на выбор: удалить папку со всем содержимым или оставить, как есть и не деинсталлировать ее.

Полный путь в Inno Setup к этой папке: {userdocs}\EA Games\The Sims 2
Путь в Inno Setup к резервной копии этой папки: {userdocs}\EA Games\The Sims 2_old

Подскажите, пожалуйста, как мне это сделать с помощью кода, хотя бы как сделать резервную копию папки «The Sims 2». Из-за этого резервного копирования не могу доделать инсталлятор.
Автор: iTASmania_Inc
Дата сообщения: 03.01.2008 22:00
Angel_Smerti
Я бы сделал [more=так]
; Файл "SHFileOperation.iss" содержится в руководстве Kindly версии 5.1
#include "SHFileOperation.iss"

[Setup]
AppName=My Program
AppVername=My Program [Version]
DefaultDirName={pf}\My program

[Code]
procedure CurStepChanged(CurStep: TSetupStep);
begin
if (CurStep = ssInstall) and (DirExists(ExpandConstant('{userdocs}\EA Games\The Sims 2'))) then
CopyDir(ExpandConstant('{userdocs}\EA Games\The Sims 2\'),
ExpandConstant('{userdocs}\EA Games\The Sims 2 Backup'));
end;

procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
if (CurUninstallStep = usPostUninstall) and (DirExists(ExpandConstant('{userdocs}\EA Games\The Sims 2'))) then
if (MsgBox('Удалить папку с сохранениями игры?', mbInformation, mb_YesNo) = idYes) then
DelTree(ExpandConstant('{userdocs}\EA Games\The Sims 2'), True, True, True)
end;
[/more].
P.S.: на мой взгляд, чисто нубовское решение, но умнее ничего не придумал. Потому что нуб.
Автор: Angel_Smerti
Дата сообщения: 03.01.2008 23:40
iTASmania_Inc
СПАСИБО ЗА СКРИПТ!!! Он подошел, но возникла еще одна проблема, [more=как совместить этот скрипт со скином Corona Skin?]
; Эту часть кода дал мне ты.
#include "SHFileOperation.iss"

[Setup]
AppName=My Program
AppVername=My Program [Version]
DefaultDirName={pf}\My program

; Эта часть от скина Corona Skin
[_ISToolPreCompile]
;Corona Skin® & checking System Requirements version 5.1.0.0, © Victor Dobrov, thanks to Genri.
    #define SkinPath AddBackslash(SourcePath) + "Corona\"    ;путь к файлам обложки (SourcePath - это папка главного (этого) скрипта)

;добавить в инсталлятор код проверки минимальных требований
    #define EnableSystemTest true        ;чтобы отключить тест системы, удалите эту строку

;добавить Медиа-плеер. Плейлист создаётся из папки Music рядом с инсталлятором, либо из папки 'Моя музыка' (при отсутствии первой)
    #define EnableMusic true    ;чтобы отключить воспроизведение музыки/видео во время установки, удалите эту строку

;путь к СКРИНСЭВЕРУ, BMP-картинке или внешнему AVI-файлу. Если указан SBSlideShow.scr, и папки Slides рядом с инсталлятором не будет, запустится слайдшоу папки 'Мои рисунки'
    #define ShowOnBackground SkinPath + "SBSlideShow.scr"    ;чтобы отключить фон, удалите эту строку
;    #define ShowOnBackground "Background.bmp"    ;только рисунок в фоновом окне

;приращение в % прогрессБара (от 1 до 100), через которое запускать перерасчёт объёма распакованных файлов
    #define CalcAppDir 20    ;чтобы отключить подсчёт объёма папки приложения, удалите эту строку
    #define AutoRunSetup    "{app}\ReadMe.rtf"    ;если инсталлятор запущен повторно, возможен автозапуск данного файла
;    #define AutoPass    true    ;скрыть страницу ввода пароля (этот ключ нужен, если требуется только зашифровать инсталлятор)
    #define WizardPos -75    ;смещение верхнего края окна мастера в процентах
    #include SkinPath + "Corona_kernel.iss"

[Code]
// Эта часть кода от скина Corona Skin
Procedure CurPageChanged(CurPageID: Integer);
    Begin
        ShowSkinPage(CurPageID)        { Corona Skin® & System Test © Victor Dobrov }
    End;

Procedure InitializeWizard;
    Begin
        InitializeSkin    { Corona Skin® with Buttons & checking System requirements by Victor Dobrov }
#ifdef EnableSystemTest
    {значения системных требований (необязательно)} NeedSys:= 4.1; NeedSp:= 0; NeedMB:= 16146; NeedMHZ:= 1200; NeedRAM:= 256; NeedVRAM:= 64; NeedSwap:= 256; NeedSoundCard:= 'Creative Sound Blaster'; NeedRegKey:= 'Software\Microsoft\.NETFramework'; NeedRegKeyOK:=' Пакет Microsoft .NET Framework установлен'; NeedRegKeyNO:=' Требуется установить Microsoft .NET Framework'
#endif
    {параметры оформления справки (необязательно)}    //SplashColor:= clNavy; SplashFont:= 'Tahoma'; SplashSize:= 10; SplashTextLeft:= 130; SplashTextTop:= 56; SplashTextWidth:= 400; SplashTextHeight:= ClientHeight - SplashTextTop
    End;

Procedure DeinitializeSetup;
    Begin
        DeInitializeSkin    // необязательно, если отсутствуют Copy.avi, InnoCallback.dll, SBSlideShow.scr, EnableMusic
    End;

Function InitializeSetup: Boolean;
    Begin
        If not(WizardSilent) and ((FindWindowbyWindowName(Copy(SetupMessage(msgSetupWindowTitle), 1, Length(SetupMessage(msgSetupWindowTitle))-2) + '{#AppName}') > 0) or (FindWindowbyWindowName(Copy(SetupMessage(msgSetupWindowTitle), 1, Length(SetupMessage(msgUninstallAppFullTitle))-2) + '{#AppName}') > 0)) then MessageBox(0, ExpandConstant('{cm:AlreadyRun}'), '{#AppName}', MB_OK or $40) else Result:= true
    End;

//    #expr SaveToFile("preprocessed.iss")


// Эта часть кода то что дал мне ты
procedure CurStepChanged(CurStep: TSetupStep);
begin
if (CurStep = ssInstall) and (DirExists(ExpandConstant('{userdocs}\EA Games\The Sims 2'))) then
CopyDir(ExpandConstant('{userdocs}\EA Games\The Sims 2\'),
ExpandConstant('{userdocs}\EA Games\The Sims 2_old));
end;

procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
if (CurUninstallStep = usPostUninstall) and (DirExists(ExpandConstant('{userdocs}\EA Games\The Sims 2'))) then
if (MsgBox('Удалить папку с сохранениями игры?', mbInformation, mb_YesNo) = idYes) then
DelTree(ExpandConstant('{userdocs}\EA Games\The Sims 2'), True, True, True)
end;

Как совместить твою часть кода со скином Corona Skin?
[/more]

Заранее спасибо за помощь.
Автор: iTASmania_Inc
Дата сообщения: 03.01.2008 23:57
Angel_Smerti
Скорее всего, повторяется CurUninstallStepChanged, собственно в моём куске и в скрипте "Corona_kernel.iss". Не исключены и другие ошибки, поэтому лучше полностью слей свой скрипт (если не коммерческая тайна куда-нить, а я уже посмотрю.
Автор: Angel_Smerti
Дата сообщения: 04.01.2008 01:12
iTASmania_Inc
Да какая тайна вот, пожалуйста!!!
Спасибо заранее, за помощь.
Автор: iTASmania_Inc
Дата сообщения: 04.01.2008 01:37
Angel_Smerti
Замени у себя Corona_kernel.iss и всё должно скомпилиться.
http://www.rapidshare.ru/525410

P.S.: а зачем указывать в секции [Files] каждый файл отдельно? Не легче ли использовать Имя_папки\* и флаги recursesubdirs и createallsubdirs?
Автор: fantasy73
Дата сообщения: 04.01.2008 09:06
Как можно при инсталяции вписать или изменить глобальные пкременные типа PATH
Тоесть добавить путь в PATH или изменить сушествуюший. ????
Автор: JawsIk
Дата сообщения: 04.01.2008 13:57
Как оказалось всё гораздо проще (по моему вопросу). Добавил в скрипт так:

[UninstallDelete]
Type: filesandordirs; Name: {app}\*.*

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

p.s. у меня стоит ispack 5.2.2 (ну вдруг раньше было не так)
Автор: Angel_Smerti
Дата сообщения: 04.01.2008 17:38
iTASmania_Inc - СПАСИБО БОЛЬШОЕ все подошло!!!
А насчет секции [Files] не все так просто: в предыдущей инсталляшке были куски кода, где было необходимо переименовывать большое количество похожих файлов, а этот код остался по наследству не переделывать же его. Собираю продолжение этой игры, и в это продолжение войдет как раз те куски кода, в которых файлы придется переименовывать, правда инсталляшка будет исправлена и дополнена.
Автор: RusDiego
Дата сообщения: 05.01.2008 10:25
Здравствуйте!
С наступающим Рождеством!

Я не гуру в Inno Setup и Pascal, но немного разбираюсь в скриптах, однако ничего не получается, а нужно вот что:

Есть 4 мода к игре.
1) Заменяет игровой шрифт на более читабельный (_gui.p01).
2) Заменяет игровой шрифт на более компактный для экономи памяти (Gothic3.ttf) .
3) Пакет квестов - добавляет квесты, который содержит (_compiledimage.p02).
4) Убирает неприятный эффект бликов солнца на камере который тоже содержит (_compiledimage.p02).

Возможно ли сделать так?
1) Если выбран 1й мод, то в {app}Gothic3.ttf переименовался в Gothic3.ttf.bak
2) Если выбран 2й мод, то в {app}Gothic3.ttf переименовался в Gothic3.ttf.bak и туда скопировался новй Gothic.ttf
3) Если выбран 3й мод, то в {app}\Data устанавливался _compiledimage.p02 от пакета квестов.
4) Если выбран 3й и моды, то в {app}\Data устанавливался _compiledimage.p02 от пакета квестов и _compiledimage.p02 от антиблика, но под именем _compiledimage.p03
А при деинсталяции все эти файлы удалялись, а Gothic3.ttf.bak переименовывался в Gothic3.ttf
И если возможно то подскажите пожалуйста как это сделать.

Всего доброго.
Сергей.

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

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


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