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

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

Автор: cross125
Дата сообщения: 19.05.2013 14:23
sjwrec
я уже делал так через консоль, но во-первых это некрасиво, во-вторых у некоторых консольный модуль на компах работает криво (не распаковывает все файлы). на рар я решил перейти потому что rar5 по сжатию сравнялся с фриарком но распаковка заметно быстрее (а это важно для инсталятора)
IsDone не хотелось вставлять из-за того что в нем тоже не все гладко, и не знаю будет ли он работать если просто заменить unrar.dll на версию 5.0.3 (с сайта винрар)
проверил: анрар хватает
Автор: sjwrec
Дата сообщения: 19.05.2013 17:50
cross125

Цитата:
и кроме того мне нужен английский вариант, чтобы все писало на инглише


IsDone v0.6 Final внутри лежит файл English.ini - похоже в этой библиотеке теперь можно менять язык.

Ссылка

Да и насчёт файла records.inf - его нужно переместить в папку со скриптом, тогда всё будет ОК.
Автор: cross125
Дата сообщения: 19.05.2013 18:15
sjwrec
разобрался, можно и без того файла, делаем обычное
Name: eng; MessagesFile: compiler:Default.isl
а русские строки переводим например на eng.ExtractedFile=Unpacking file
лейбаки прошло, осталось и общее время я снес вместе с формированием records (мне нужны ток проценты, остальное лишнее), и поменял if ISDoneInit(ExpandConstant(''), но как сделать чтоб без records проценты с ума не сходили?
попробовал другой репак сделать, вернул все назад, % сходят с ума, records пишется как "вечность" в строке оставшегося времени, причем на первом репаке он % правильно писал и при тестовом прогоне, вообщем глюкодром этот ISDONE
поменял архив на другой (поменьше), скрипт тот же - работает норм, все зависит от архива, значит в isdone где-то баг
подсовываю усеченному варианту любые архивы с файлами до 4гб, все ок, выше 4гб - проценты летят тысячами, и на этом большом архиве оригинальный скрипт - тот же фейл)
Автор: sjwrec
Дата сообщения: 19.05.2013 19:10
cross125
Вполне возможно, ведь IsDone не заточен под формат RAR5 во и глючит поэтому.
Автор: cross125
Дата сообщения: 19.05.2013 19:15
sjwrec
а обновление ISdone вообще будет когда-нить? вот почему я и спрашивал скрипт конкретно для rar. RAR5 в 2.5-3 раза быстрее при распаковке при той же степени сжатия что и у фриарк, а скрипта толкового нет)
Автор: sjwrec
Дата сообщения: 19.05.2013 19:27
cross125
Насчёт обновления я не знаю, не я разрабатываю этот проект.

Сейчас сжал RAR5 - 1 ГБ игру на 500 МБ проверил на IsDone - Реально ставилась меньше минуты (55 сек)!
Тестовый прогон сделал, затем скомпилил вместе с records.inf - результат ОК.

Использовал Isdone v0.6 Final c заменённой библиотекой UnRAR v5.0.3.860
Автор: cross125
Дата сообщения: 19.05.2013 20:06
sjwrec
я уже репаков 20 перелопатил, по скорости все стабильно, всегда в 2.5-3 раза быстрее фриарка на моей машине, по степени сжатия иногда рар5 протупит и сожмет хуже на ~5мб (на том же типе данных) а иногда выиграет 10-15мб если архив большой получается, в основном разница +/-1 мб (рар4 всегда продувал по 5-10мб)
что касается размеров то у меня все архивы с файлами до 4гб норм берет (причем без всякого records.inf проценты пишет верно), а выше 4гб даже с records проценты уходят в тысячи прогресс-бар сразу заполняется, но файл распаковывается корректно (к библе unrar вопросов нет, у меня тоже 5.0.3.860)
Автор: sjwrec
Дата сообщения: 19.05.2013 20:20
cross125
Можно в таком случае сделать многотомные архивы по 4 ГБ. Раз уж такой глюк с большими архивами.
Паковать архивы с разбиением на 4 481 МБ (DVD+R)

Но лучше саму игру поделить на части и запакавать в разные архивы: Data1.rar, Data2.rar и.т.д.
Автор: cross125
Дата сообщения: 19.05.2013 22:20
sjwrec
проблема не в архивах а в файлах, я имел ввиду что если файл больше 4гб то глюк, при этом размер архива пофигу, у меня есть файл на 2,2гига который сжимается хуже, для обоих файлов конечный архив примерно равного размера но глюк ток с тем который сожержит 4гб файл, поэтому наврядли разбиение файла на тома решит проблему
я уже попробовал убрать 2-ой прогресс-бар в скрипте, не помогло
Автор: sjwrec
Дата сообщения: 21.05.2013 20:51
Просьба:
Протестируйте у себя вот этот инсталл, он ничего не устанавливает а только показывает сообщение о видеокарте.

Тест видеокарты v2.0

Если можно пришлите скрин.

Если у вас НОД антивирус - не пугайтесь если определит как опасное ПО, он так может отреагировать на WinAPI - которая используется в тесте.

Пожалуйста укажите ОС, соответствуют ли данные с вашей видеокартой, какой антивирус у вас (желательно).

Мои данные: Windows XP SP2 / Windows 7 Максимальная x86, да, Avast 4.8 Pro.
Автор: sergey3695
Дата сообщения: 22.05.2013 15:05
Вот

в углу написана видеокарта, можешь удостоверится,что не врет.
Автор: Black_Ghost
Дата сообщения: 23.05.2013 08:07
sjwrec






Win 7 Домашняя Расширенная x64, да, NOD Antivirus 5.
Автор: Sacuma
Дата сообщения: 23.05.2013 08:46
не понял как сделать, чтоб программа подхватывала нужные мне настройки
Автор: SotM
Дата сообщения: 23.05.2013 12:33
Sacuma
Ты хоть сам понял что спросил?
Автор: BUU
Дата сообщения: 23.05.2013 20:27


Всем привет, понять не могу, как сделать белый чекбокс, чтоб внутри шрифт был черный, а остальное неизменным?
Автор: sjwrec
Дата сообщения: 24.05.2013 19:18
sergey3695
Black_Ghost
Спасибо Вам что протестировали.

Вот собственно Сам исходник:
Тест видеокарты v2.0 (скрипт)

BUU

Примерно так (если я конечно правильно понял о чём идёт речь)

Код:
MyEdit.Color:=clWhite;
MyEdit.Font.Color:=clBlack;
Автор: BUU
Дата сообщения: 24.05.2013 19:59
Вот код чекбокса

http://rghost.ru/46232115
Автор: sjwrec
Дата сообщения: 24.05.2013 20:42
BUU

Это не чекбокс, чекбокс это совсем другое - нажимаешь на него и в нём появляется/исчезает галочка

Добавьте к Вашему коду выделенные строки:


Код:
// создаём 5 edit'ов
for i:= 1 to 5 do begin
edt[i]:= TEdit.Create(NewPage);
with edt[i] do begin
Parent:= NewPage.Surface;
Left:= 0 + (e*i);
Top:= 47;
Width:= 47;
Height:= 21;
MaxLength:= 4;
OnKeyPress:= @edtKeyPress;

Color:=clWhite;
Font.Color:=clBlack;
Автор: BUU
Дата сообщения: 24.05.2013 20:53
sjwrec
спс, работает
Автор: sjwrec
Дата сообщения: 24.05.2013 20:58
BUU
Пожалуйста. Таким же образом можно поменять цвета местами.


Код:
Color:=clBlack;
Font.Color:=clWhite;
Автор: romanNEO
Дата сообщения: 25.05.2013 21:36
Как сделать обводку у текста, допустим текст белый а обводка чёрная, всё перерыл, не где не нашёл и зделать тень (без добавления нового TLabel)
Вот участок кода: [more] PageNameLabel := TLabel.Create(WizardForm);
with PageNameLabel do
begin
Left := ScaleX(45);
Top := ScaleY(10);
Width := ScaleX(300);
Height := ScaleY(14);
AutoSize := False;
WordWrap := True;
Font.Color := clwhite;
Font.Style := [fsBold];
Transparent := True;
Parent := WizardForm.MainPanel;
end;
[/more]
Автор: namquang93
Дата сообщения: 26.05.2013 05:29
can I block an exe file from accessing internet with windows firewall using inno setup.
Автор: nik1967
Дата сообщения: 27.05.2013 06:01
namquang93, Yes, you can. Example:
[more]
Код: #define MyAppVerName "My Program version"
#define path "{app}\MyProg.exe"

[Setup]
AppName=My Program
AppVerName=My Program version
DefaultDirName={pf}\My Program

[Files]
Source: MyProg.exe; DestDir: {app}
Source: FirewallInstallHelper.dll; DestDir: {app}

[UninstallDelete]
Type: files; Name: {app}\FirewallInstallHelper.dll

[ Code]
function AddApplicationToExceptionList(path: String; name: String): Boolean; external 'AddApplicationToExceptionListA@files:FirewallInstallHelper.dll stdcall setuponly';
function RemoveApplicationFromExceptionList(path: String): Boolean; external 'RemoveApplicationFromExceptionListA@{app}\FirewallInstallHelper.dll stdcall uninstallonly';

procedure CurStepChanged(CurStep: TSetupStep);
var
path, name: String;
begin
if CurStep = ssPostInstall then
begin
path:=ExpandConstant('{#path}');
name:=ExpandConstant('{#MyAppVerName}');

AddApplicationToExceptionList(path, name);
end;
end;

procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
var
path: String;
begin
if CurUninstallStep=usUninstall then
begin
path:=ExpandConstant('{#path}');
RemoveApplicationFromExceptionList(path);
UnloadDll(ExpandConstant('{app}\FirewallInstallHelper.dll'));
end;
end;
Автор: yuwik
Дата сообщения: 27.05.2013 22:25
Здравствуйте, я новичок, помогите пожалуйста
Как добавить в config.ini установленной игры

Код: [INSTALL]
PATH=C:\Program Files\Nostradamus\datas
Автор: innonewbie
Дата сообщения: 28.05.2013 09:04
yuwik, вот как [more=пример]procedure DeinitializeSetup();
begin
try
SaveStringToFile(ExpandConstant('{app}\config.ini'), 'PATH='+ExpandConstant('{app}')+'\datas', True);
except
end;
end; [/more]. В самом ини строчку под [INSTALL] оставь пустой.
Автор: vint56
Дата сообщения: 28.05.2013 09:23
innonewbie уже ответил но вот еще один пример
procedure CurStepChanged(CurStep: TSetupStep);
var
path: String;
begin
if CurStep = ssPostInstall then
begin
CreateDir(ExpandConstant('{app}\datas'))
SetIniString('INSTALL', 'PATH', ExpandConstant('{app}\datas'), ExpandConstant('{app}\datas\config.ini'));
end;
end;
Автор: yuwik
Дата сообщения: 28.05.2013 10:20
innonewbie, vint56
Спасибо Вам большое, Всё получилось, сработал 1 вариант от innonewbie, за что я ему очень благодарен!!!

Автор: ultimo
Дата сообщения: 28.05.2013 17:47
Вопрос срочный. Ситуация такая: когда при установке был выбран к примеру английский язык, то необходимо, чтобы "radiobutton" компонента автоматически переключился в положение EN. По умолчанию стоит RU...
Автор: sergey3695
Дата сообщения: 29.05.2013 18:36
ultimo
Зависимость элементов от выбранного языка на примере
картинки

Автор: ultimo
Дата сообщения: 29.05.2013 20:37
sergey3695
Проблема в том, что я не знаю, как переключить кнопку из одной позиции в другую...Дефолтная страница выбора компонентов SelectComponentsPage.

Добавлено:
sergey3695

if ActiveLanguage = 'en' then
RadioButton:= Checked;

Что-то типа вот такого, только не знаю, как заместо RadioButton использовать компонент.

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177

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


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