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

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

Автор: VitaliM
Дата сообщения: 24.11.2006 21:40
Genri

Цитата:
TProc = procedure(HandleW, msg, idEvent, TimeSys: LongInt);

Я так думаю, что ты пропустил в описатели типа соглашение о вызове, т.е. stdcall.
Другого криминала не вижу.
Автор: Genri
Дата сообщения: 25.11.2006 00:04
VitaliM - не прошло.
Но в новостных конференциях нашел следующее:
Цитата:
Inno can't make Stdcall procedures that Windows requires either.

Правда, там же нашел и пример решения. Все-таки придется использовать длл-переходник. Хорошо, хоть есть готовая.

Автор: Genri
Дата сообщения: 26.11.2006 03:09
GRom V

Цитата:
Можно ли сделать смену картинок не по таймеру, а помере выполнения установки.
Например 10% - 1.jpg, 20% - 2.jpg и.т.д.

Пример [more=здесь]
[Setup]
AppName=My Program
AppVerName=My Program
CreateAppDir=No
WindowVisible=Yes

[Files]
; Копирование *.dll для демонстрации
Source: "{sys}\*.dll"; DestDir: {tmp}; Flags: external
Source: InnoCallback.dll; DestDir: {tmp}; Flags: dontcopy
Source: pic1.bmp; DestDir: {tmp}; Flags: dontcopy
Source: pic2.bmp; DestDir: {tmp}; Flags: dontcopy

[Code]
type
TProc = procedure(HandleW, msg, idEvent, TimeSys: LongWord);

var
BackgroundBitmapImage: TBitmapImage;
TimerID: LongWord;

function WrapTimerProc(callback:TProc; paramcount:integer):longword;
external 'wrapcallback@files:innocallback.dll stdcall';

function SetTimer(hWnd: LongWord; nIDEvent, uElapse: LongWord; lpTimerFunc: LongWord): LongWord;
external 'SetTimer@user32.dll stdcall';

function KillTimer(hWnd: LongWord; nIDEvent: LongWord): LongWord;
external 'KillTimer@user32.dll stdcall';


//**************************************//
function PercentProgress(): Integer;
begin
with WizardForm.ProgressGauge do
begin
Result:= (Position-Min)/((Max - Min)/100) ;
end;
end;

procedure OnTimer(HandleW, msg, idEvent, TimeSys: LongWord);
var
percent: integer;

begin
percent:= PercentProgress;
(* К сожалению, Inno Setup не поддерживает
задание диапазона в операторе Case. Типа:
Case X of
1 .. 10: xxx;
11 .. 20: yyy; *)
with BackgroundBitmapImage do
begin
if ((percent > 0) and (percent < 10) and (Tag <> 1)) then
begin
Bitmap.LoadFromFile(ExpandConstant('{tmp}') + '\pic1.bmp');
Tag:= 1;
end else
if ((percent > 11) and (percent < 20) and (Tag <> 2)) then
begin
Bitmap.LoadFromFile(ExpandConstant('{tmp}') + '\pic2.bmp');
Tag:= 2;
end;
end;
end;

procedure CurPageChanged(CurPageID: Integer);
var
pfunc: LongWord;

begin
if CurPageID = wpInstalling then
begin
pfunc:= WrapTimerProc(@OnTimer, 4);
TimerID:= SetTimer(0, 0, 500, pfunc);

BackgroundBitmapImage := TBitmapImage.Create(MainForm);
with BackgroundBitmapImage do
begin
Left := 50;
Top := 100;
AutoSize := True;
Center := True;
Parent := MainForm;
Bitmap.LoadFromFile(ExpandConstant('{tmp}') + '\pic1.bmp');
Tag:= 1;
end;
end;
end;

procedure InitializeWizard();
begin
ExtractTemporaryFile('pic1.bmp');
ExtractTemporaryFile('pic2.bmp');
end;

procedure DeinitializeSetup();
begin
KillTimer(0, TimerID);
end;
[/more]
Линк на innocallback.dll можно найти постом выше.
Автор: sank
Дата сообщения: 26.11.2006 07:17
Здравствуйте уважаемые спецы вам никогда не
попадалась такая конструкция:
1)setup.exe (сделанный на inno setup)
2)DATARUS.EXE (сделанный с помощью 7-zip)
И расположен sfx архив не в нутри а снаружи.
Если хотите посмотреть пример вот ссылка:
http://ifolder.ru/506396
Когда разберете напишите скрипт.
Мне тоже хочется узнать как это сделано.
Автор: Kindly
Дата сообщения: 26.11.2006 11:20
sank, не качал, но подразумеваю, что в SFX архив упакованы файлы русификации для игры, которые в результате выборочной установки устанавливаются. Так а чего скрипт писать, у меня многие игровые скрипты так реализованы. Делаешь внешний компонент с флагом external, затем в секции Run запускаешь с параметром -y и все. Ну там указываешь удаление файла после установки и будет тебе счастье. Если не разберешся кину код.


Добавлено:
Ладно.
[Components]
Name: "eng"; Description: "Английская версия"; Flags: exclusive
Name: "rus"; Description: "Русская версия"; Flags: exclusive

[Types]
Name: "custom"; Description: "Выборочная установка"; Flags: iscustom

[Files]
Source: "D:\NFS - Most Wanted\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
Components: rus; Source: "{src}\Rus\NFSMWRUS.exe"; DestDir: "{app}"; Flags: ignoreversion external deleteafterinstall

[Run]
Filename: "{app}\NFSMWRUS.exe"; WorkingDir: "{app}"; Parameters: "-y"; StatusMsg: "Процесс русификации..."; Flags: waituntilterminated skipifdoesntexist

Это ли?
Автор: sank
Дата сообщения: 26.11.2006 13:32
Нет это не то. Вы привели пример того что SFX архив копируется в папку с установкой а потом запускается и в конце установки удаляется. А у меня SFX архив ни куда не копируется просто распаковывается в папку ,указанную при установке. И следовательно он (SFX архив) не удаляется. Вы всетаки скачайте пример убедитесь сами.
Автор: Genri
Дата сообщения: 26.11.2006 17:25
sank
И все-таки - в чем проблема ?

Если я правильно понял, дистрибутив состоит условно из двух файлов:

Цитата:
1)setup.exe (сделанный на inno setup)
2)DATARUS.EXE (сделанный с помощью 7-zip)

В процессе установки,
Цитата:
SFX архив ни куда не копируется
- (т.е. путь к архиву указан как {src}), а
Цитата:
просто распаковывается в папку ,указанную при установке.
- (т.е. при запуске архива ему либо в качестве параметра передается путь установки, либо путь установки делается текущим и архив распаковывается в текущую папку).

Так в чем проблема ?


Автор: Chanka
Дата сообщения: 26.11.2006 17:53
Ребята как сделать, чтобы на странице Информация о пользователе добавить туда еще и ввод пароля?
Автор: mukca
Дата сообщения: 26.11.2006 18:33
sank
вот те исход скрипт той установке (я понимаю тебе он нужен был???)
[more=скрипт установки]
[Setup]
AppName=Counter-Strike 1.5
AppVerName=Counter-Strike
DefaultDirName={sd}\Games\Counter-Strike
OutputBaseFilename=SetupRus
Compression=lzma
WizardImageFile=embedded\WizardImage.bmp
WizardSmallImageFile=embedded\WizardSmallImage.bmp

[Files]
Source: "embedded\uninstall.exe"; DestDir: "embedded";
Source: "{app}\temp.tmp"; DestDir: "{app}"; Flags: uninsneveruninstall deleteafterinstall
Source: "embedded\CompiledCode.bin"; DestDir: "embedded";
Source: "embedded\WizardImage.bmp"; DestDir: "embedded";
Source: "embedded\WizardSmallImage.bmp"; DestDir: "embedded";

[Registry]
Root: HKCU; Subkey: "Software\Valve"; Flags: uninsdeletekeyifempty
Root: HKCU; Subkey: "Software\Valve\CounterStrike"; Flags: uninsdeletekeyifempty
Root: HKCU; Subkey: "Software\Valve\CounterStrike\Settings"; Flags: uninsdeletekeyifempty
Root: HKCU; Subkey: "Software\Valve\CounterStrike\Settings"; ValueName: "Version"; ValueType: Dword; ValueData: "$1";
Root: HKCU; Subkey: "Software\Valve\CounterStrike\Settings"; ValueName: "LauncherBPP"; ValueType: Dword; ValueData: "$10";
Root: HKCU; Subkey: "Software\Valve\CounterStrike\Settings"; ValueName: "LauncherWidth"; ValueType: Dword; ValueData: "$280";
Root: HKCU; Subkey: "Software\Valve\CounterStrike\Settings"; ValueName: "LauncherHeight"; ValueType: Dword; ValueData: "$1E0";
Root: HKCU; Subkey: "Software\Valve\CounterStrike\Settings"; ValueName: "EngineGLDriver"; ValueType: String; ValueData: "Default";
Root: HKCU; Subkey: "Software\Valve\CounterStrike\Settings"; ValueName: "EngineD3DDevice"; ValueType: String; ValueData: "Default";
Root: HKCU; Subkey: "Software\Valve\CounterStrike\Settings"; ValueName: "EngineType"; ValueType: Dword; ValueData: "$1";
Root: HKCU; Subkey: "Software\Valve\CounterStrike\Settings"; ValueName: "EngineModeW"; ValueType: Dword; ValueData: "$190";
Root: HKCU; Subkey: "Software\Valve\CounterStrike\Settings"; ValueName: "EngineModeH"; ValueType: Dword; ValueData: "$12C";
Root: HKCU; Subkey: "Software\Valve\CounterStrike\Settings"; ValueName: "EngineModeBPP"; ValueType: Dword; ValueData: "$10";
Root: HKCU; Subkey: "Software\Valve\CounterStrike\Settings"; ValueName: "EngineModeCaptured"; ValueType: Dword; ValueData: "$1";
Root: HKCU; Subkey: "Software\Valve\CounterStrike\Settings"; ValueName: "A3D Support"; ValueType: Dword; ValueData: "$0";
Root: HKCU; Subkey: "Software\Valve\CounterStrike\Settings"; ValueName: "EngineModeWindowed"; ValueType: Dword; ValueData: "$0";
Root: HKCU; Subkey: "Software\Valve\CounterStrike\Settings"; ValueName: "CPUMHZ"; ValueType: Dword; ValueData: "$0";
Root: HKCU; Subkey: "Software\Valve\CounterStrike\Settings"; ValueName: "Key"; ValueType: String; ValueData: "1374653317652";
Root: HKCU; Subkey: "Software\Valve\CounterStrike\Settings"; ValueName: "Mod Sort Order"; ValueType: String; ValueData: "1";
Root: HKCU; Subkey: "Software\Valve\Half-Life"; Flags: uninsdeletekeyifempty
Root: HKCU; Subkey: "Software\Valve\Half-Life"; ValueName: "InstallPath"; ValueType: String; ValueData: "{app}";
Root: HKCU; Subkey: "Software\Valve\Half-Life"; ValueName: "Full Name"; ValueType: String; ValueData: "Half-Life";
Root: HKCU; Subkey: "Software\Valve\Half-Life\Settings"; Flags: uninsdeletekeyifempty
Root: HKCU; Subkey: "Software\Valve\Half-Life\Settings"; ValueName: "EngineDLL"; ValueType: String; ValueData: "hw.dll";
Root: HKCU; Subkey: "Software\Valve\Half-Life\Settings"; ValueName: "ScreenWindowed"; ValueType: Dword; ValueData: "$0";
Root: HKCU; Subkey: "Software\Valve\Half-Life\Settings"; ValueName: "ScreenWidth"; ValueType: Dword; ValueData: "$280";
Root: HKCU; Subkey: "Software\Valve\Half-Life\Settings"; ValueName: "ScreenHeight"; ValueType: Dword; ValueData: "$1E0";
Root: HKCU; Subkey: "Software\Valve\Half-Life\Settings"; ValueName: "ScreenBPP"; ValueType: Dword; ValueData: "$10";
Root: HKCU; Subkey: "Software\Valve\Half-Life\Settings"; ValueName: "ValveKey"; ValueType: String;
Root: HKCU; Subkey: "Software\Valve\Half-Life\Settings"; ValueName: "io"; ValueType: String; ValueData: "1076896560";
Root: HKCU; Subkey: "Software\Valve\Half-Life\Settings"; ValueName: "yeK1"; ValueType: String; ValueData: "AE7C3B0175AD7ADA5FB908B6231A7AEA6A625C983568613F0B4F7A10A08665DD26933D35835C73925E3A7C0EDA9F61C821427749E7A20D30C01D62AF2250843E9A08707F470F20652158CD49CBB6788CC8F711B8FB6994D09C8A9AC015AB159A9B85F96CEECACA24178D26F18F41946AD7D88CCB307C71143131AE7756B91D";
Root: HKCU; Subkey: "Software\Valve\Half-Life\Settings"; ValueName: "yeK2"; ValueType: String; ValueData: "12D0CA3A071356B1C393245967B45EAEA79DCC322379A84E83557947BBB4ED6B68742B3E2AA2816818561C134EB446BD560F7909E38C";
Root: HKCU; Subkey: "Software\Valve\Half-Life\Settings"; ValueName: "EngineD3D"; ValueType: Dword; ValueData: "$0";
Root: HKCU; Subkey: "Software\Valve\Half-Life\Settings"; ValueName: "User Token 2"; ValueType: String;
Root: HKCU; Subkey: "Software\Valve\Half-Life\Settings"; ValueName: "User Token 3"; ValueType: String;
Root: HKCU; Subkey: "Software\Valve\Half-Life\Settings"; ValueName: "Version"; ValueType: Dword; ValueData: "$1";
Root: HKCU; Subkey: "Software\Valve\Half-Life\Settings"; ValueName: "LauncherBPP"; ValueType: Dword; ValueData: "$10";
Root: HKCU; Subkey: "Software\Valve\Half-Life\Settings"; ValueName: "LauncherWidth"; ValueType: Dword; ValueData: "$280";
Root: HKCU; Subkey: "Software\Valve\Half-Life\Settings"; ValueName: "LauncherHeight"; ValueType: Dword; ValueData: "$1E0";
Root: HKCU; Subkey: "Software\Valve\Half-Life\Settings"; ValueName: "EngineGLDriver"; ValueType: String; ValueData: "Default";
Root: HKCU; Subkey: "Software\Valve\Half-Life\Settings"; ValueName: "EngineD3DDevice"; ValueType: String; ValueData: "Default";
Root: HKCU; Subkey: "Software\Valve\Half-Life\Settings"; ValueName: "EngineType"; ValueType: Dword; ValueData: "$1";
Root: HKCU; Subkey: "Software\Valve\Half-Life\Settings"; ValueName: "EngineModeW"; ValueType: Dword; ValueData: "$280";
Root: HKCU; Subkey: "Software\Valve\Half-Life\Settings"; ValueName: "EngineModeH"; ValueType: Dword; ValueData: "$1E0";
Root: HKCU; Subkey: "Software\Valve\Half-Life\Settings"; ValueName: "EngineModeBPP"; ValueType: Dword; ValueData: "$10";
Root: HKCU; Subkey: "Software\Valve\Half-Life\Settings"; ValueName: "EngineModeCaptured"; ValueType: Dword; ValueData: "$1";
Root: HKCU; Subkey: "Software\Valve\Half-Life\Settings"; ValueName: "A3D Support"; ValueType: Dword; ValueData: "$0";
Root: HKCU; Subkey: "Software\Valve\Half-Life\Settings"; ValueName: "EngineModeWindowed"; ValueType: Dword; ValueData: "$0";
Root: HKCU; Subkey: "Software\Valve\Half-Life\Settings"; ValueName: "CPUMHZ"; ValueType: Dword; ValueData: "$0";
Root: HKCU; Subkey: "Software\Valve\Half-Life\Settings"; ValueName: "Key"; ValueType: String; ValueData: "7970087857506";

[Icons]
Name: "{group}\Half Life"; Filename: "{app}\hl.exe"; WorkingDir: "{app}"; IconFilename: "{app}\hl.exe";
Name: "{group}\Counter-Strike"; Filename: "{app}\hl.exe"; Parameters: "-game cstrike -console"; WorkingDir: "{app}"; IconFilename: "{app}\hl.exe";
Name: "{group}\DMC"; Filename: "{app}\hl.exe"; Parameters: "-game DMC -console"; WorkingDir: "{app}"; IconFilename: "{app}\hl.exe";
Name: "{group}\Ricochet"; Filename: "{app}\hl.exe"; Parameters: "-game Ricochet -console"; WorkingDir: "{app}"; IconFilename: "{app}\hl.exe";
Name: "{group}\Team Fortress"; Filename: "{app}\hl.exe"; Parameters: "-game TFC -console"; WorkingDir: "{app}"; IconFilename: "{app}\hl.exe";
Name: "{group}\Удалить"; Filename: "{uninstallexe}"; WorkingDir: "{app}"; IconFilename: "{uninstallexe}";
[/more]

Добавлено:
sank
тока там про запуск sfx архива нечего нет.
наверное они это через вставку на паскале решили ..... как незнаю.
Автор: TD10
Дата сообщения: 27.11.2006 14:48
здраствуйте, мне хотелось бы задать вопрос:
Можно ли при помощи innoSutup создать установщик со следующими пораметрами:
- во время запуска инсталятор принудительно меняет разрешение экрана на заданное
- скрытие любых атрибутов окна как у самого шаблона, так и у полноэкранного окна инсталятора (свернуть, развернуть, закрыть)
- использование анимации (gif , flash или полноценное видео) во время установки
- использование анимации между переходами от шаблона скажем лиц соглашения, к шаблону выбора дириктории установки.
- использования музыки во время установки
- использование собственноручно нарисованного прогресс бара
за ранее спасибо.
Автор: mukca
Дата сообщения: 27.11.2006 17:26
TD10
можно , если в делфе шариш.....
как правило такими делают не инсталяторы а прога которая первая распаковывается запускаеться а потом управляет инсталятором...
Автор: Kindly
Дата сообщения: 27.11.2006 18:28
Genri

Цитата:
Так в чем проблема ?

sank, нужно изучить справку по 7-zip, там действительно имеются параметры для передачи к архиву. Вот например во многих пиратских инсталляторах, основанных на WISE, инсталлятор передают распаковщику RAR архива путь для извлечения файлов, находящихся в архиве на диске. Думаю, с Inno такой проблемы не должно возникунть, пробуй сам вникнуть.

Автор: Genri
Дата сообщения: 27.11.2006 18:58
Kindly -- Это ко мне вопрос ?

sank -- new.exe -x -y -oC:\TEMP - распакует архив в C:\TEMP без лишних вопросов.
Отдельные извращенцы могут использовать команду SUBST.



Добавлено:
TD10
Все, что ты описал, сделать можно, но для этого Inno Setup уже необязателен. Все-равно ты почти все стандартное у него перекрываешь.
Вопрос в другом - стоит-ли ? Лично мне не нравится, когда при инсталляции, программа "принудительно" переключает у меня разрешение, запускает свою музыку, вместо той, что я в данный момент слушаю, да и вообще, начинает мигать как новогодняя елка. И в добавок пытается спрятать кнопки закрытия своего окна. ИМХО это не очень хороший стиль.
Автор: putes
Дата сообщения: 27.11.2006 20:23
может это конечно и просто, но немогу разобраться, по порядку:
делаю инсталяху в которую входит, образ из двух файлов (MDF, MDS), и инсталяха Деймон тулз.
Какой сделать скрипт, чтобы, походу проинсталился Деймон и смонтировался образ в него...
Спасибо
Автор: Genri
Дата сообщения: 28.11.2006 01:07
Chanka

Цитата:
как сделать, чтобы на странице Информация о пользователе добавить туда еще и ввод пароля?
-- если речь идет о той странице, которая отображается при UserInfoPage=yes, то просто добавь в код функцию:

function CheckSerial(Serial: String): Boolean;
begin
if Serial = 'aaa' then Result:= True; // или типа того.
end;
Автор: mikar
Дата сообщения: 28.11.2006 05:54
А можно ли изменить цвет текста, который задается в левом нижнем углу инсталятора идентификатором BeveledLabel, а также чтобы он был ссылкой, т.е. при нажатии на него можно было перейти на определенную страницу в интернете? И можно ли в инсталляторе изменять цвет шрифта?

Может кому нужно:
Русификатор InnoSetup 5.1.8 от DENXXLAB
_http://msilab.net/download/download.php?ad=5664
Русификатор InnoSetup 5.1.8 от egorlii
_http://msilab.net/download/download.php?ad=5672
Автор: Genri
Дата сообщения: 28.11.2006 09:39
mikar

Цитата:
можно ли изменить цвет текста, который задается в левом нижнем углу инсталятора идентификатором BeveledLabel, а также чтобы он был ссылкой, т.е. при нажатии на него можно было перейти на определенную страницу в интернете?


Код:
procedure BevelLabelOnClick(Sender: TObject);
var
ErrorCode: Integer;
begin
ShellExec('open', 'http://www.innosetup.com', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode);
end;

procedure InitializeWizard();
begin
with WizardForm.BeveledLabel do
begin
Cursor := crHand;
OnClick := @BevelLabelOnClick;
Font.Style := Font.Style + [fsUnderline];
Font.Color := clBlue;
Enabled:= True;
end;
end;
Автор: Kindly
Дата сообщения: 28.11.2006 16:23
Genri

Цитата:
Это ко мне вопрос ?
Нет
sank
[Run]
Filename: "{src}\GAME\NFSMW.exe"; WorkingDir: "{src}\GAME"; Parameters: "-y -o""{app}"""; Flags: waituntilterminated

Следовательно, передаем архиву путь для распаковки, выбранный при установке, причем с параметром -y, который, как должно быть известно, отвечает за "тихую" установку, т.е. по умолчанию распаковывает и перезаписывает файлы без запроса. Как показано на примере, файл sfx-архива должен содержать, например, все файлы игры. Причем в секции [Files] этот архив указывать не нужно, можно вообще эту секцию не указывать в скрипте, хотя если вы юзаете дополнительные файлы (русификация, требуемые системные библиотеки и др.), то их как обычно нужно указать в секции [Files]. С одной стороны, очень даже неплохая реализация установки, 7-zip, признаться, хоть на чуток, но лучше сжимает, чем Inno.

Есть приличные русификаторы на ZoneOfGames (да простит меня SerGEAnt's). Так вот, не надо пытаться вскрывать технологию упаковки и процесса русификации. Инсталляторы защищены от распаковки автораспаковщиком и глюков при установке и удалении русификатора не наблюдается. И зачем нам перепаковывать файлы оригинальной русификации, если их и так можно установить, при этом все копирайты сохраняются:

[Run]
Filename: "{src}\Rus\NfSCarbon.exe"; WorkingDir: "{src}\Rus"; Parameters: "/silent /nocancel /DIR=""{app}"""; Flags: waituntilterminated skipifdoesntexist

В этом случае будет произведена тихая установка русификации с сохранением резервных копий англоязычных файлов, причем с возможностью их обратного восстановления. Не забываем указать флаг "skipifdoesntexist", если запускаемый файл является "выбираемым" при установке. Конечно, лучше реализовать это через секцию [Code], в которой можно указать запуск русификатора в зависимости от выбранных компонентов, а также создать дополнительный ярлык для удаления русификации отдельно. но есть одна проблема...

Все вышеописанное с многочисленными параметрами реализовать в секции [Code] у меня пока не получилось, если вообще возможно, загвоздку составляют параметры. Как известно, в секции [Code] константа {app} имеет вид: ExpandConstant('{app}'). Сильно не экспериментировал, но не получается передать путь для распаковки таким образом, компилятор выдает ошибки, или распаковывает в неверную папку. Попробуйте кто-нибудь, может у вас получится. В крайнем случае, будем жаловаться Джордану Расселу.
Автор: Genri
Дата сообщения: 28.11.2006 17:02
Kindly

Цитата:
Конечно, лучше реализовать это через секцию Code, в которой можно указать запуск русификатора в зависимости от выбранных компонентов

В секции [Run] это тоже можно реализовать используя параметр Components. Например:

Код:
[Types]
Name: "full"; Description: "Full installation"
Name: "compact"; Description: "Compact installation"
Name: "custom"; Description: "Custom installation"; Flags: iscustom

[Components]
Name: "program"; Description: "Program Files"; Types: full compact custom; Flags: fixed
Name: "help"; Description: "Help File"; Types: full
Name: "readme"; Description: "Readme File"; Types: full
Name: "readme\en"; Description: "English"; Flags: exclusive
Name: "readme\ru"; Description: "Russian"; Flags: exclusive

[Run]
Filename: "{src}\Rus\NfSCarbon.exe"; WorkingDir: "{src}\Rus"; Parameters: "/silent /nocancel /DIR=""{app}"""; Components: readme\ru; Flags: waituntilterminated skipifdoesntexist
Автор: Chanka
Дата сообщения: 28.11.2006 17:08
Спасибо Genri!


Еще вопросик можно ли как-нибудь восстановить компилированный код. Ну хотя бы частично.
Автор: immortal223
Дата сообщения: 28.11.2006 19:00
ScriptMaker для Inno Setup у меня грузит процессор на 97-100%. Это так и должно быть или глюк какой-то???
Автор: svs123456789
Дата сообщения: 28.11.2006 19:17
immortal223

Цитата:
ScriptMaker для Inno Setup у меня грузит процессор на 97-100%.

у меня тоже! - пользоваться невозможно!
Автор: Genri
Дата сообщения: 28.11.2006 22:28
Chanka

Цитата:
можно ли как-нибудь восстановить компилированный код.
-- ничего нет невозможного. Но я приемлимых способов восстановления не знаю (разве что спецов из ФСБ нанять). Как говорят: "Попытка конвертировать исполняемый код в исходник, напоминает попытку конвертировать гамбургер в корову"

Для сохранения исходника, могу порекомендовать включить в инсталлятор сам *.iss файл. И в случае, если инсталлятор запускается с определенным ключем, вызывать диалог сохранения файла (без ключа исходник никуда не копируется и скрыт от посторонних взглядов). Пример можно найти по линку в шапке.

Хотя... если тебя устроит в примерно таком виде:

Код:
[VARS]
Var [0]: 17 Class TMAINFORM
Var [1]: 18 Class TWIZARDFORM
[PROCS]
Proc [0] Export: !MAIN -1
[0] RET
Proc [1] Export: CURPAGECHANGED -1 @9
[0] PUSHTYPE 9(S32) // 1
[5] PUSHTYPE 7(String) // 2
[10] PUSHTYPE 15(U8) // 3
[15] COMPARE into Base[3]: Base[-1] = [11]
[36] SETFLAG NOT Base[3]
[43] POP // 2
[44] FLAGGOTO currpos + 872 [921]
[49] PUSHTYPE 7(String) // 3
[54] PUSHTYPE 7(String) // 4
[59] ASSIGN Base[4], ['{src}']
[79] PUSHVAR Base[3] // 5
[85] CALL 3
[90] POP // 4
[91] POP // 3
[92] PUSHVAR Base[2] // 4
[98] CALL 2
Автор: mikar
Дата сообщения: 29.11.2006 06:58
Genri

Цитата:
Код:

procedure BevelLabelOnClick(Sender: TObject);
var
ErrorCode: Integer;
begin
ShellExec('open', 'http://www.innosetup.com', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode);
end;

procedure InitializeWizard();
begin
with WizardForm.BeveledLabel do
begin
Cursor := crHand;
OnClick := @BevelLabelOnClick;
Font.Style := Font.Style + [fsUnderline];
Font.Color := clBlue;
Enabled:= True;
end;
end;


Цитата:
WizardForm.Font.Color:= clRed;

А в каком месте скрипта это должно находиться?

И можно ли сменить иконку у деинсталлятора, или после объединения с инсталлятором это уже совсем невозможно?
Автор: Genri
Дата сообщения: 29.11.2006 12:10
mikar

Цитата:
в каком месте скрипта это должно находиться?
-- в секции Code естественно. Или я тебя не так понял?
Автор: Chanka
Дата сообщения: 29.11.2006 12:28
Genri,

Можешь скинуть в личку свой e-mail. Я тебе вышлю комп. код. А то я не догоняю.
Автор: Genri
Дата сообщения: 29.11.2006 13:11
Chanka
так и пиши в личку.

Добавлено:
mikar

Цитата:
можно ли сменить иконку у деинсталлятора

Код:
[Setup]
UninstallDisplayIcon={app}\MyProg.exe,1
Автор: Kindly
Дата сообщения: 29.11.2006 16:30
Genri

Цитата:
В секции [Run] это тоже можно реализовать используя параметр Components.
Конечно, но как-то не очень "красиво" получается. Когда запускаешь через Run, то получается, что записи в реестр и ярлыки уже записаны перед распаковкой.
Автор: svs123456789
Дата сообщения: 29.11.2006 17:08
подскажите, плиз, как выводить название проги в кавычках?
(при установке - в диалогах и окнах)
[more]
ISTool:
#define MyAppName "'Имя'"
#define MyAppVerName "'Имя ver 1.0'"
#define MyAppExeName "test.exe"

[Setup]
AppName={#MyAppName}
AppVerName={#MyAppVerName}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={pf}\{#MyAppName}
DefaultGroupName={#MyAppName}
OutputBaseFilename=_setup
OutputDir=.\out\
UsePreviousGroup=false
ShowLanguageDialog=no
UsePreviousAppDir=false
[/more]
Автор: mikar
Дата сообщения: 29.11.2006 21:14
Genri
Спасибо, но

Цитата:
[Setup]
UninstallDisplayIcon={app}\MyProg.exe,1

я уже пробовал, не работает.

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172

Предыдущая тема: ICONS


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