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

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

Автор: abasov
Дата сообщения: 12.11.2007 06:57
Как сделать выбор компонента уникальным? Если выбирается один, то другой выбрать нельзя?
Другими средствами кроме "exclusive" нельзя?
Автор: Frostt
Дата сообщения: 13.11.2007 07:25
Люди вопрос как в Inno Setup правильно ввести данные в реестр?,
такого типа hex:7F,1E,EF,8E,7B,1A,EB,8A. Я взял эти строки от сохраненного ключа реестра. Задача такая, чтобы при установки добавлялись эти бешенные параметры автоматически.
И еще как записать в скрипте установщике в разделе реестр строку огромной длины ??, походу она не помещается:
hex(0):01,0A,46,62,C1,21,04,E0,02,0F,43,9A,81,BC,E6,30,\
08,45,C4,28,02,37,1D,84,90,4A,6A,88,00,9E,81,26,\
9D,AC,0A,02,64,20,88,D5,57,00,46,85,A9,12,92,11,\
2C,68,39,50,40,39,32,7D,81,3C,96,F2,40,50,32,3E,\
A0,B3,01,95,08,04,81,24,57,65,86,99,03,09,92,54,\
1C,6B,C0,AC,02,D4,0D,DE,12,8C,61,11,6C,12,8E,B1,\
A4,80,0D,C7,4B,81,30,72,5C,06,37,28,A0,59,4E,12,\
9E,81,40,B0,04,23,8E,05,4A,1C,64,A8,BC,89,C8,03,\
E9,52,0D,52,80,72,00,20,5B,80,08,FD,A6,83,80,29,\
55,0E,46,22,D8,04,44,07,90,26,D3,FC,AA,52,0C,8A,\
00,0C,03,4A,A4,43,10,61,0E,C4,10,26,20,E9,34,C8,\
21,9C,14,10,49,5A,F1,21,80,C6,84,AB,C0,A4,1B,A6,\
72,D0,A0,C9,51,51,24,D8,62,30,A2,66,01,43,81,2A,\
12,03,00,04,83,0C,E1,AE,E6,80,D6,BC,4C,A0,39,02,\
D8,6A,60,D4,07,2A,53,81,6D,FA,2D,08,94,F0,30,91,\
B9,02,4A,77,64,AC,E8,94,00,09,E3,9A,01,01,01,01

Я сделал пока временно по другому: из секции RUN после установки запускается файл *.reg где все и прописано, но это требует от человека согласия на добавления информации в реестр и подтверждения. Т.е это напрягает и не в автоматическом режиме. Надо сделать чтобы все проходило в фоне и в автомате.
Автор: namchik
Дата сообщения: 13.11.2007 07:30
Frostt

Цитата:
из секции RUN после установки запускается файл *.reg где все и прописано, но это требует от человека согласия на добавления информации в реестр и подтверждения

запускай так: regedit /s файл.reg
И будет без подтверждения
Автор: Forslay
Дата сообщения: 13.11.2007 07:58
Как сделать, что бы после нажатия кнопки "Завершение", тоесть в самом конце инсталляции, запускалось определённое приложение, помогите...
Дайте код...
Автор: laskeev2
Дата сообщения: 13.11.2007 07:58
Подскажите, как сделать добавление в иконку информации, полученной из реестра при установке.

Я в секции [Code] получаю из реестра путь к файлу:

function InitializeUninstall(): Boolean;
begin
RegPath := 'Software\Microsoft\Windows\CurrentVersion\App Paths\CEAppMgr.exe';
if RegQueryStringValue(HKEY_LOCAL_MACHINE, RegPath, '', sExeCEAppMng) then
begin
Result := True;
end
else
begin
MsgBox('Не могу запустить WinCE Application Manager.', mbError, MB_OK);
Result := False;
end;
end;

Допустим, там получен путь C:\Program Files\Microsoft ActiveSync\CEAPPMGR.EXE.

Как мне его (полученный путь) добавить в иконку вместе с параметром (ссылкой на ini-файл):

"C:\Program Files\Microsoft ActiveSync\CEAPPMGR.EXE" "C:\Program Files\Mobile\MobileSetup.ini"

[Icons]
Name: {userdesktop}\Установка на КПК программы Mobile; Filename: "RegPath(содержимое...) "; Parameters: " {app}\MobileSetup.ini" - как сделать правильно?
Автор: kir202
Дата сообщения: 13.11.2007 10:27
Frostt

Цитата:
Люди вопрос как в Inno Setup правильно ввести данные в реестр?,
такого типа hex:7F,1E,EF,8E,7B,1A,EB,8A.


Делаешь ключ ValueType: binary; ValueName: Имя ключа; ValueData: пишешь свои значения начиная с 7F,1E,EF,8E,7B,1A,EB,8A затем убираешь знаки \ и все данные должны быть в одну строчку.

У меня такой ключ отлично работает. Удачи
Автор: Frostt
Дата сообщения: 13.11.2007 11:30
kir202
А запятые нужны 7F,1E,EF,8E,7B,1A,E или убирать их?

У меня по длине в одну строчку этот ключ уже не влазиет! Че делать? дальше ползунок горизонтальной прокрутки не двигается!?
Автор: Victor_Dobrov
Дата сообщения: 13.11.2007 12:41
laskeev2, если CEAppMgr.exe отсутствует, иконка не будет создана.

[Icons]
Name: {userdesktop}\Установка на КПК программы Mobile; Filename: {reg:HKLM\Software\Microsoft\Windows\CurrentVersion\App Paths\CEAppMgr.exe,}; Parameters: """{app}\MobileSetup.ini"""; Flags: createonlyiffileexists
Автор: Frostt
Дата сообщения: 13.11.2007 13:33
Forslay
наверно так

[Run]
Filename: "{app}\audio\ConvD.bat"; WorkingDir: "{app}\audio"; StatusMsg: "Идёт конвертация диалогов ..."; Flags: waituntilterminated runminimized
или
Filename: "{app}\TRA"; WorkingDir: "{app}";
Автор: laskeev2
Дата сообщения: 13.11.2007 14:03

Цитата:
Victor_Dobrov

Все работае, спасибо.
Автор: Cover_Story
Дата сообщения: 13.11.2007 16:22
Всем доброго!
Помогите пожалуйста написать простенький скрипт, что-то я не разберусь в скриптах inno setup. В общем мне нужно написать простенький инсталлятор. Есть файл (инсталл) который скачивают люди с инета. После скачивания должен содержимое в инсталляционном файле должно копироваться в определенное место на диске (Не Program Files и не папка windows).
Автор: Alex Zaguzin
Дата сообщения: 13.11.2007 17:17
Cover_Story - так там же есть мастер - используй. Или юзай ISTool, там проще. И какой файл куда должен идти? Приведи пример. А то ничего не понятно.
Автор: lexpa
Дата сообщения: 13.11.2007 18:33
Возможно, некоторых участников этой ветки заинтересует эта новость.

Появился новый плагин для Visual Studio 2005 - Lexpa, который добавляет специальный тип проектов 'Inno Setup Project' в Visual Studio 2005.

Сайт: www.lexpa.com | Скриншоты: 1, 2, 3, 4, 5, 6, 7

P.S. Будем рады получить Ваши пожелания и предложения по развитию продукта!


Спасибо,
Lexpa Team
Автор: Cover_Story
Дата сообщения: 14.11.2007 06:20
В общем у меня есть база данных товаров(один файл) которая ежемесячно обновляется, ко мне приходят обновления я их скидываю на ftp-сервак. Люди эту базу сливают себе затем копируют в в определенную папку. Что мне нужно: Создать инсталлятор с данной базой который после скачивания и запуска его просто копировал бы его по указанному в скрипте пути.
Автор: Cover_Story
Дата сообщения: 14.11.2007 15:53
В общем накатал следующее:

[Setup]
AppName=NewGoods
AppVerName=NewGoods 09.11
DefaultDirName=c:\base\base.dat
Compression=lzma
SolidCompression=yes

[Files]
Source: "DATA_06.MKD"; DestDir: "{app}"; Flags: ignoreversion

Примерно так!
хотелось бы Flags сделать чтобы не тупо менял один файл на другой а записывал поверх если только файл новее.
Еще хотелось бы инсталлер на русском.
И сам инсталл без первой и второй страницы
И еще дико извиняюсь не могу найти скомпилированный мною инсталл, где он?
Автор: iTASmania_Inc
Дата сообщения: 14.11.2007 18:41
Cover_Story
Инсталл скомпилился по умолчанию сюда:
C:\Documents and Settings\Имя пользователя\Мои документы\Output

Добавлено:
Чтобы инсталл был на русском:
[Languages]
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"

Добавлено:
Чтобы не было проблем с поиском инсталла лучше использовать директиву секции [Setup] OutputDir, а ещё лучше юзать прогу ISTool, который позволяет упростить большинство операций создания инсталла.

Добавлено:

Цитата:
И сам инсталл без первой и второй страницы

В секции [Code]:
procedure CurPageChanged(CurPageID: Integer);
begin
If CurPageID = wpWelcome then
WizardForm.NextButton.OnClick(WizardForm.NextButton)
end;
Вторая страница отключается по аналогии.
Автор: Raf_SE
Дата сообщения: 14.11.2007 23:45
1. Можно ли в Inno Setup задать установку с условием - например, чтобы установка начиналась только если в реестре присутствует некоторый ключ или определенный файл уже имеется?
В даном случае ключ:
Root: HKLM; Subkey: "SOFTWARE\LucasArts\Star Wars Empire at War\1.0"; ValueName: "ExePath"; ValueType: String; ValueData: "{app}\GameData\sweaw.exe";

2. Можно ли сделать так, чтобы в зависимости от ключей реестра, автоматически выбрался определенный компонент, и пользователю не светилось бы окно с выбором компонентов?
К примеру, чтобы инсталятор выбрал компонент "eng" если находит ключ:
Root: HKLM; Subkey: "SOFTWARE\LucasArts\Star Wars Empire at War\1.0"; ValueName: "CD Key"; ValueType: String; ValueData: "fc4c-3d8-05f-d411-uk20"; Flags: uninsdeletekey;
и "rus" если:
Root: HKLM; Subkey: "SOFTWARE\LucasArts\Star Wars Empire at War\1.0"; ValueName: "CD Key"; ValueType: String; ValueData: "d97a-c0b-3c2-36d5-ru20"; Flags: uninsdeletekey;

3. Чем эта сборка http://files.jrsoftware.org/ispack/ispack-5.2.2.exe (именуемая в шабке "Preprocessor") отличается от стандартной?
Автор: Victor_Dobrov
Дата сообщения: 15.11.2007 01:46
Raf_SE, вот готовый скрипт, по третьему вопросу смотри первую строку скрипта (Preprocessor нужен).

#define DateTime GetDateTimeString('ddddd','','')

[Setup]
AppName=CheckRegValue
AppVerName=CheckRegValue and select Component
DefaultDirName={pf}\My Program
OutputBaseFilename=Setup (сборка от {#DateTime})

[Tasks]
Name: eng; Description: Английская версия; Check: CheckKey
Name: rus; Description: Русская версия; Check: not CheckKey

[Code]
Function CheckKey: Boolean;
Begin
    if ExpandConstant('{reg:HKLM\Software\LucasArts\Star Wars Empire at War\1.0,CD Key}') = 'fc4c-3d8-05f-d411-uk20' then Result:= True
End;

Function InitializeSetup: Boolean;
Begin
    If RegValueExists(HKLM, 'Software\LucasArts\Star Wars Empire at War\1.0\ExePath', ExpandConstant('{#SetupSetting("DefaultDirName")}')) then Result:= True else MsgBox('Программа ' + '{#SetupSetting("AppName")}' + ' не установлена!', mbInformation, mb_Ok)
End;
Автор: Cover_Story
Дата сообщения: 15.11.2007 06:24
Большое спасибо я кажется начал немного разбираться с этим Inno Setup
Автор: svs123456789
Дата сообщения: 15.11.2007 10:23

Цитата:
Corona Skin & Check System Requirements

может быть имеет смысл сделать полную сборка (по аналогии со сборками тотал коммандера)
включив в нее полный боекомлект и ISTool и Вашу разработку и Inno Setup
и главное чтоб все устанавливалось в один каталог (и было мобильным )
Автор: Victor_Dobrov
Дата сообщения: 15.11.2007 12:36
svs123456789, мне это не надо, так как легче обновить небольшой архив (вскоре немного доработаю скрипт), чем пересобирать и заливать полный боекомплект, да и не моё это - делать пособие для начинающих.
Автор: Raf_SE
Дата сообщения: 15.11.2007 23:09

Цитата:
Function InitializeSetup: Boolean;
Begin
If RegValueExists(HKLM, 'Software\LucasArts\Star Wars Empire at War\1.0\ExePath', ExpandConstant('{#SetupSetting("DefaultDirName")}')) then Result:= True else MsgBox('Программа ' + '{#SetupSetting("AppName")}' + ' не установлена!', mbInformation, mb_Ok)
End;

Victor_Dobrov
А как сделать чтоб при не нахождение этого ключа писало:
Star Wars: Empire at Wars не обнаружен.
Необходимо установить Star Wars: Empire at Wars перед
установкой Star Wars: Empire at Wars - Forces of Corruption
Автор: noiseless
Дата сообщения: 16.11.2007 10:39
Raf_SE
вроде вот так :
Function InitializeSetup: Boolean;
Begin
If RegValueExists(HKLM, 'Software\LucasArts\Star Wars Empire at War\1.0\ExePath', ExpandConstant('{#SetupSetting("DefaultDirName")}')) then Result:= True else MsgBox('Star Wars: Empire at Wars не обнаружен.'+#13+'Необходимо установить Star Wars: Empire at Wars перед установкой Star Wars: Empire at Wars - Forces of Corruption', mbInformation, mb_Ok)
End;
Автор: 4esnok
Дата сообщения: 16.11.2007 13:07
Подскажите плиз, как сделать чтобы WizardImageFile менялся, в конце установки на другую картинку?
Автор: serg_aka_lain
Дата сообщения: 16.11.2007 17:20
4esnok

Source: ImageFile.bmp; DestDir: {tmp}; Flags: dontcopy;

procedure InitializeWizard ();
var BitmapImageFile : string;

begin
BitmapImageFile := ExpandConstant('{tmp}\ImageFile.bmp');
ExtractTemporaryFile(ExtractFileName(BitmapImageFile));

with WizardForm do
begin
with WizardBitmapImage2 do
begin
WizardBitmapImage2.Bitmap.LoadFromFile(BitmapImageFile);
end
end
end;
Автор: 4esnok
Дата сообщения: 16.11.2007 23:21
serg_aka_lain Спасибо!
Автор: serega393
Дата сообщения: 17.11.2007 06:11
Помогите пожалуйста. Как поменять цвет текста строки на странице InfoBefore, перед информацией есть строка "...........нажмите <Далее> для прод......." вот для неё надо поменять цвет теста.
Автор: Dimbay
Дата сообщения: 17.11.2007 08:49
Victor_Dobrov
Такой вопрос:Я использую в одном скрипте несколько procedure InitializeWizard();,как правильно это сделать?

Автор: iTASmania_Inc
Дата сообщения: 17.11.2007 10:12
serega393
procedure InitializeWizard();
begin
WizardForm.InfoBeforeClickLabel.Font.Color := clRed
// WizardForm.InfoBeforeClickLabel.Font.Color := $0000FF
end;
Автор: serega393
Дата сообщения: 17.11.2007 10:15
iTASmania_Inc

Спасибо!

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

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


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