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

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

Автор: Don_Juan
Дата сообщения: 10.03.2009 19:52
alfonser

Попробуй так:


Код: procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep = ssPostInstall then
begin
DeleteFile( ExpandConstant('{win}\xxx.dll') );
end;
end;
Автор: alfonser
Дата сообщения: 10.03.2009 19:57
Don_Juan
Спасибо! Получилось!
Автор: maximka707
Дата сообщения: 10.03.2009 20:54
подскажите такую ситуацию.
Мне нужно настроить создаваемый ярлык, который будет располагаться на рабочем стол со специальными параметрами, а именно все мы знаем игру Counter-Strike так вот нужен ярлык в котором будет в свойствах ярлыка должно писаться в свойствах объект не просто путь до файла
"C:\Program Files\game\hl2.exe"
а
"C:\Program Files\game\hl2.exe" -game cstrike -console
кто знает подскажите !

И еще чтобы ярлык отображался выбранным мною изображением ярлычка.
Автор: alfonser
Дата сообщения: 10.03.2009 21:15
maximka707
Ты же когда создаешь ярлык, то и указываешь, все что необходимо. В том числе и параметры( -game cstrike -console ) и файл значка (.ехе или .ico)
Автор: maximka707
Дата сообщения: 10.03.2009 21:16
Пример скрипта inno приведи пожалуйста.

у меня пока что так

[Icons]
Name: "{group}\Insurgensy"; Filename: "{app}\hl2.exe";
Name: "{commondesktop}\Insurgensy"; Filename: "{app}\hl2.exe"; Tasks: desktopicon


Автор: DeKaNszn
Дата сообщения: 10.03.2009 21:22
nOobCrafter попробуй [more=код][no][Files]
Source: C:\777\guard\*; DestDir: {app}\777\Guard; Flags: ignoreversion recursesubdirs createallsubdirs; Components: a; Check: checking()
Source: C:\777\access\*; DestDir: {app}\777\Access; Flags: ignoreversion recursesubdirs createallsubdirs; Components: b; Check: checking()

[Code]
const
file_1 = 'aaa.aaa';
file_2 = 'bbb.bbb';

var
isUpdate:boolean;{если выбрано обновление - присвоить true}

function checking():boolean;
begin
If not isUpdate
Then Result:=true
Else
Case ExtractFileName(CurrentFileName) of
file_1,file_2: Result:=true;
else Result:=false;
end;
end;[/no][/more]

maximka707

Name: {commondesktop}\Insurgensy; Filename: {app}\hl2.exe; Tasks: desktopicon; Parameters: "-game cstrike -console "; WorkingDir: {app}; IconFilename: {app}\hl2.exe
Автор: maximka707
Дата сообщения: 10.03.2009 21:41
DeKaNszn - благодарю
Автор: DeKaNszn
Дата сообщения: 10.03.2009 22:11
1)
[Tasks]
Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}

2)
[Icons]
Name: {group}\Удаление; Filename: {app}\unins000.exe; WorkingDir: {app}; IconFilename: {app}\unins000.exe


Автор: Krec13
Дата сообщения: 11.03.2009 01:10
Помогите, пожалуйста, скриптом. С инно имею дело первый раз.
Есть самораспаковывающиеся архивы, сделанные во FreeArc'e. Нужно оформить инсталлятор (сделать фон, поменять кнопки, все панели) и чтобы он распаковывал архивы через unarc (архивы лежат рядом с инсталлом).
Если можно, то с пояснениями, что за что отвечает.
Автор: mikutu
Дата сообщения: 11.03.2009 05:46

Цитата:
Victor_Dobrov

Спасибо не запакованный innocallback не распознается, как вирус (все равно при размере 10 мб лишние 50 кб не критичны, хотя по идеи сам дистрибутив должен увеличится намного меньше, так как он же внутри дистрибутива храниться сжатый 7z вроде).

Выбор антивируса зависит не от создателя установщика программы, а от пользователя который будет ее устанавливать, я сам если ставлю какую-нибудь программу и мне антивирус дает хоть малейшее подозрение на вирус я сначала подумаю насколько она мне действительно нужна и насколько это опасно и лишь потом буду принимать решение, но большинство пользователей в этой ситуации я думаю просто прекратят установку этой программы и врят ли когда-нибудь еще раз запустят ее.

А насчет ImgGdiPlus.dll (он распознается nod32 как win32/Adware.Agent и отключение опции Обнаружение потенциально нежелательных приложений ни чего не дает т.к. этот файл у них в базе, отключение обнаружения рекламного/шпионского/опасного также ни чего не дает) у меня вопрос следующий у меня эти строки закоментированы
#define MediaPlayer
#define ShowOnBackground
а ImgGdiPlus.dll все равно включается в состав дистрибутива.
Да на всякий случай я использую картинку как фон окна (кнопок на нем и т.п.) (в том числе и окна справки) и от этого отказаться не могу, вопрос в следующем используется ли для этого ImgGdiPlus.dll.
Автор: Yoldosh
Дата сообщения: 11.03.2009 07:55
Помогите я так и не понял как сменить иконку деинсталятора
Автор: gyra
Дата сообщения: 11.03.2009 08:25
Yoldosh
В секции [Setup] UninstallDisplayIcon=путь до иконки.
Автор: SotM
Дата сообщения: 11.03.2009 08:36
Krec13
А ты скачивал примеры из шапки? Искал другие примеры в других темах? Если нет, то сначала посмотри всё это, а потом уже задавай вопросы.

To All. Вопросы практически всегда задавать гораздо легче, чем просто поискать в примерах и в других ветках, где уже много чего обсуждали.
Автор: nOobCrafter
Дата сообщения: 11.03.2009 11:24
DeKaNszn
А можно данные как нить записать во что то типа массива? что бы каждый раз не писать

Код: const
file_1 = 'aaa.aaa';
file_2 = 'bbb.bbb';
Автор: DeKaNszn
Дата сообщения: 11.03.2009 12:39
nOobCrafter

моя функция не копирует, она только проверяет надо ли копировать
лучше используй ее

ЗЫ: проще писать так:

function checking():boolean;
begin
If not WizardForm.TasksList.Checked[5]
Then Result:=true
Else
Case ExtractFileName(CurrentFileName) of
'aaa.aaa','bbb.bbb': Result:=true;
else Result:=false;
end;
end;
Автор: nOobCrafter
Дата сообщения: 11.03.2009 13:07
Хорошо, в тогда функцию бэкапа мне занести в нижнюю часть, перед извлечением

Код: Else
// бэкап тут
Case ExtractFileName(CurrentFileName) of
'aaa.aaa','bbb.bbb': Result:=true;
else Result:=false;
Автор: Prince_Tails
Дата сообщения: 11.03.2009 13:20

Цитата:
Как сделать чтобы при установке инсталятьра, можно было extracting распаковать автоматически и в папку установки( сам extracting находился бы на диске)?
Ответьте пожалуйста

Кто-нибудь помогите мне, пожалуйста...очень надо
Автор: nOobCrafter
Дата сообщения: 11.03.2009 14:34
Prince_Tails
внятно обьясни что ты хочешь. что такое екстрактинг? на каком диске?.. на винте или на сд?
Автор: Yoldosh
Дата сообщения: 11.03.2009 14:45

Цитата:
В секции [Setup] UninstallDisplayIcon=путь до иконки.
не помогает естли другой способ
Автор: Prince_Tails
Дата сообщения: 11.03.2009 15:09
nOobCrafter
extracting- распаковка файлов сделаных в 7-zip
на установочном диске чтобы был архив для распаповки(7зип), и он сразу распаковывалсЯ с диска в католог с игрой, не спрашивая при этом путь
Автор: DeKaNszn
Дата сообщения: 11.03.2009 15:12
nOobCrafter вот [more=так][no][Files]
Source: C:\777\guard\*; DestDir: {app}\777\Guard; Flags: ignoreversion recursesubdirs createallsubdirs; Components: a; Check: checking(); BeforeInstall: Backup()
Source: C:\777\access\*; DestDir: {app}\777\Access; Flags: ignoreversion recursesubdirs createallsubdirs; Components: b; Check: checking(); BeforeInstall: Backup()
{если Check-функция возвращает false, то инсталлятор делает вид, что этого файла/компонента/задачи нет в коде}

function checking():boolean;
begin
If not WizardForm.TasksList.Checked[5]
Then Result:=true
Else
Case ExtractFileName(CurrentFileName) of
'aaa.aaa','bbb.bbb': Result:=true; {эти файлы надо обновить}
else Result:=false; {остальные не нужны}
end;
end;

procedure Backup();
begin
if WizardForm.TasksList.Checked[5]
then begin
BackupDir('C:\777\Guard\','C:\BackUp\5','*.exe',False, False);
BackupDir('C:\777\Guard\','C:\BackUp\5','*.dll',False, False);
end;
end;[/no][/more]

Prince_Tails
тебе надо внимательно прочитать шапку, дойдя до фразы Inno Setup Scripting 5.1, нажать на нее, скачать данный файл, установить и просмотреть примеры
Там это есть
Автор: nOobCrafter
Дата сообщения: 11.03.2009 15:20
DeKaNszn
Спс большое, а что по поводу массива?... или нерационально?
Автор: DeKaNszn
Дата сообщения: 11.03.2009 15:30
проще написать черз запятую значения вместо 'aaa.aaa','bbb.bbb'
Автор: Prince_Tails
Дата сообщения: 11.03.2009 15:54
DeKaNszn
У меня этот файл не скачивает
Можешь залить его на какой-нибудь файлообменник?
Автор: nOobCrafter
Дата сообщения: 11.03.2009 16:12
DeKaNszn
почему то checking() выполняется 2 раза, в начале и в конце. зато бэкапа совсем не слышно((
при тех же условиях что и последнем оставленом тобой куске делаю:

Код: function checking():boolean;
begin
If not WizardForm.TasksList.Checked[5]
Then Result:=true
Else
MsgBox('замена файлов', MbInformation, Mb_Ok);
Case ExtractFileName(CurrentFileName) of
'aaa.aaa','bbb.bbb': Result:=true; //эти файлы надо обновить
else Result:=false; // остальные не нужны
end;
end;
Автор: WinstAn70
Дата сообщения: 11.03.2009 17:10
Prince_Tails
Смотря какой архив (7z,sfx и т.д) пишешь распаковку через параметры!
Пример:Через секцию run
Filename: {src}\Game.exe; Parameters: -x -y -s2 -d.; WorkingDir: {app}\Game\; StatusMsg: Идет распаковка файлов...; Flags: shellexec runhidden waituntilterminated; Этот флаг скрывает видимость распаковки!
Автор: skeptik_vdm
Дата сообщения: 11.03.2009 17:44
WinstAn70

Может объяснить мне не грамотному что означают эти параметры (-x -y -s2 -d)
при распаковке???
Автор: DeKaNszn
Дата сообщения: 11.03.2009 18:05
Prince_Tails не могу

nOobCrafter тогда этот [more=код][no][Files]
Source: C:\777\guard\*; DestDir: {app}\777\Guard; Flags: ignoreversion recursesubdirs createallsubdirs; Components: a; Check: checking()
Source: C:\777\access\*; DestDir: {app}\777\Access; Flags: ignoreversion recursesubdirs createallsubdirs; Components: b; Check: checking()

[Code]
var
updating:boolean;

function InitializeSetup();
begin
updating:=false;
Result:=true;
end;

//Здесь надо вставить код процедуры "BackupDir"

procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep=ssInstall and WizardForm.TasksList.Checked[5]
Then begin
BackupDir('C:\777\Guard\','C:\BackUp\5','*.exe',False, False);
BackupDir('C:\777\Guard\','C:\BackUp\5','*.dll',False, False);
updating:=true;
end;
end;

function checking():boolean;
begin
If not updating
Then Result:=true
Else begin
//MsgBox('замена файла' + ExtractFileName(CurrentFileName), MbInformation, Mb_Ok); {для отладки}
Case ExtractFileName(CurrentFileName) of
'aaa.aaa','bbb.bbb': Result:=true; {эти файлы надо обновить}
else Result:=false; {остальные не нужны}
end;
end;
end; [/no][/more]

протестируй, меняя как можно меньше
не должно при запуске в отладке выкидывать сообщения
Автор: WinstAn70
Дата сообщения: 11.03.2009 18:32
skeptik_vdm
Скажу проще ты сам можешь глянуть через какие параметры ты можешь запустить то или оное приложение сделай так: Filename: {src}\Game.exe; Parameters: -?
Это пример.! Он тебе выдаст список и там все будет написано что за что отвечает!
Автор: skeptik_vdm
Дата сообщения: 11.03.2009 18:54
WinstAn70
Чтот у меня не получается я поставил этот параметр но у меня просто сам архив запускается и все без списка параметров!!!

Добавлено:
Все разобрался!!!

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071

Предыдущая тема: в очередной раз босудим антивиры?


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