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

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

Автор: Victor_Dobrov
Дата сообщения: 02.09.2007 00:47
Unc1e --
Автор: putes
Дата сообщения: 02.09.2007 01:13
а как непосредственно по тихому прикрутить в инсталляцию файл реестра..(secu.eg.reg) ?
чтобы в конце инсталляции он по тихому запустился и внёс данные в реестр
спасибо
Автор: AlexDJ666
Дата сообщения: 02.09.2007 06:31
Genri, Victor_Dobrov, Sampron, omals, товарищи гранды, неужели никто не сможет мне помочь?
Автор: iTASmania_Inc
Дата сообщения: 02.09.2007 11:40
2ALL
ПОЖАЛУЙСТА, подскажите, как создать форму для выбора определённого файлы (что-то вроде обзора файлов). Если более конкретно выразиться надо, чтобы как при установке Касперского 7 была возможность выбрать файл ("Использовать полученный ранее ключ").

Добавлено:
putes
А зачем импортировать в реестр значения из файла, когда в Inno Setup есть секция [Registry]. К тому же в ISTool есть импортёр кусков реестра, который сразу переводит значения из реестра в соответствующую секцию.
Автор: Victor_Dobrov
Дата сообщения: 02.09.2007 12:51
Corona Skin & Check System Requirements Теперь в качестве фона могут быть установлены BMP-изображение, Скринсэвер, или AVI-файл. Достаточно прописать путь к файлу (AVI-файл в инсталлятор не включается).

AlexDJ666, насчёт фоновой картинки уже отвечали.
Примеры подсказки для компонентов в стиле NSIS приводились.
Насчёт всплывающего эскиза картинки подумаю...
Автор: Forslay
Дата сообщения: 02.09.2007 13:24
Ответьте пожалуйста на два вопроса:

1) - Есть ли возможность в INNO Setup проверки версии NET.Framework'а

2) - На счёт фоновой установки кодеков и DirectX, по примеру Kindly вроде бы всё понятно... Но в каком виде нужно подавать INNO инсталлятор (к примеру DirectX), что бы он автоматически обновлял уже зная куда надо DirextX системы? Тоже самое и с кодеками... Помогите пожалуйста...
Автор: Victor_Dobrov
Дата сообщения: 02.09.2007 13:58
Список версий .NET Framework можно получить так:

[Setup]
AppName=.NETFramework
AppVerName=.NETFramework
CreateAppDir=false

[Code]
var
    i, n: Integer; S: String; Names: TArrayOfString;
Function InitializeSetup: Boolean;
    Begin
if RegGetSubkeyNames(HKLM, 'Software\Microsoft\.NETFramework\policy', Names) then
begin
    for i:= 0 to GetArrayLength(Names)-1 do
        if Pos('v',Names[i]) > 0 then begin Names[n]:= Names[i]; n:= n + 1; end
    SetArrayLength(Names, n);
    for i:= 0 to GetArrayLength(Names)-1 do S:= S + Names[i] + #13#10;
end else
    S:= 'Нет установленных версий'
MsgBox('Версии .NET Framework:'#13#10 + S, mbInformation, MB_OK);
End;
Автор: iTASmania_Inc
Дата сообщения: 02.09.2007 16:21
Victor_Dobrov
Просто ради интереса переименовал один из локальных дисков в '11111111111111111111111111111111' после чего запустил инсталлятор CoronaSkin и дошёл до показа списка дисков. В результате перестал отображаться тип файловой системы и вместо названия диска почему-то пишет - "без метки". Можно ли как-нибудь устранить подобное?

Добавлено:
P.S.: Вопрос снимается. Вроде решил:
VolumeName := StringOfChar(' ', 33)
GetVolumeInformation(Path, VolumeName, 33, VolumeSerialNo, MaxComponentLength, FileSystemFlags, FileSystemName, 31)
Или неправильно?

P.S.S.: Извиняюсь, что достаю тупыми вопросами, но в системе у меня стоит:
- .NET Compact Framework 2.0 SP1
- .NET Framework 3.0
А в месадж-боксе отображается только первый. Это неточность скрипта или глюк системы?
Автор: Forslay
Дата сообщения: 02.09.2007 17:50
Victor_Dobrov, я наверное не правильно поставил свой вопрос...

Мне нужно, что бы инсталлятор проверял версию NET.Framework'а, и если она ниже заданной... То инсталятор выводил сообщение: " Версия Frameworka... не соответсвует этой программе... бла бла бла... скачать можно здесь: www.microsoft.com\... бла бла бла "

Как это можно реализовать?
Автор: Chanka
Дата сообщения: 02.09.2007 19:58
Подскажите пожалуйста как можно сделать
Если Tasks был отмечен то тогда после копирования файлов должен появится текст (InfoAfterFile) а если Tasks не был отмечен то текста быть не должно
Автор: iTASmania_Inc
Дата сообщения: 02.09.2007 20:02
Chanka
А как у тебя таск называется? А ещё лучше бы весь код...
Автор: Chanka
Дата сообщения: 02.09.2007 20:07
iTASmania_Inc
Вот так

[Files]
Source: "gamedata\*"; DestDir: "{app}"; Tasks: "mod"; Flags: recursesubdirs createallsubdirs

[Tasks]
Name: "mod"; Description: "Установить модификацию S.T.A.L.K.E.R. версии 1.0004"; GroupDescription: "Дополнительные программы:";
Автор: iTASmania_Inc
Дата сообщения: 02.09.2007 20:13
Chanka
Попробуй так:
function ShouldSkipPage(PageID: Integer): Boolean;
begin
if (PageID = wpInfoAfter) and (not ISTaskSelected('mod')) then Result := True
end;
Автор: Chanka
Дата сообщения: 02.09.2007 20:19
iTASmania_Inc
Респект
Автор: Chuvakstepan
Дата сообщения: 03.09.2007 06:25
Нарисовал иконки InstallShield для инсталлятора, в разрешении 256х256. (ссылки, при нажатии на картинку):
Автор: Victor_Dobrov
Дата сообщения: 03.09.2007 11:46
Corona Skin & Check System Requirements iTASmania_Inc, теперь можешь именовать диски и файлы как угодно. P.S. добавил две функции: CheckMemorySize(треб.МБ) и CheckCPU(треб.Мгц), я их использую для компонентов с флагом CheckableAlone.
Автор: Chanka
Дата сообщения: 03.09.2007 12:16
Victor_Dobrov
Можно спросить. Почему здесь на диске D: 2 числа после точки ведь должно быть 3
http://img75.imageshack.us/my.php?image=coronayg8.jpg
Автор: Victor_Dobrov
Дата сообщения: 03.09.2007 13:10
Chanka, всё правильно, в значении 18,630 функция FloatToStr отбрасывает ноль сама.
Автор: Chanka
Дата сообщения: 03.09.2007 14:20
Victor_Dobrov
Понятно. Просто в сталкере всегда 3 вот я и подумал что что-то не так
http://img358.imageshack.us/my.php?image=stalkerjpgkr1.jpg
Автор: Victor_Dobrov
Дата сообщения: 03.09.2007 14:45
Я не хочу делать так, как в Сталкере, я делаю как положено.
Автор: serg_aka_lain
Дата сообщения: 03.09.2007 18:14
Для Putes
Если ещё актуально (как импортировать reg файл), то я сделал бы так

[Files]
Source: secu.eg.reg; DestDir: {app}; Flags: deleteafterinstall; (если надо удалить)

[Run]
Filename: "{sys}\regedt32.exe"; Parameters: "/s ""{app}\secu.eg.reg""";
Автор: iTASmania_Inc
Дата сообщения: 03.09.2007 18:39
Victor_Dobrov

Цитата:
P.S. добавил две функции: CheckMemorySize(треб.МБ) и CheckCPU(треб.Мгц)

Заметил изменения в определении видеокарты, а вышеуказанных функций не нашёл.
Всё, функции найдены, спасибо большое.

Добавлено:
Chanka
Инсталл от СТАЛКЕРа не есть образец для подражания, потому что сама система и инсталл Corona определяют своюодное место как 32.4Гб, СТАЛКЕРовский - почему-то 33.2Гб + могу привести ещё примеров.
Автор: Chanka
Дата сообщения: 03.09.2007 19:08
iTASmania_Inc
Просто там ровно цифры идут. если на одном диске показывает 0.000 то и на остальных тоже самое. Только это мне в нём нравится.
Автор: Victor_Dobrov
Дата сообщения: 03.09.2007 19:44
Chanka, а мне наоборот, не нравится такой вид строки: 18,100 Гб, или такой: 18,000 Гб. Для меня лучше так: 18,1 Гб ... 18 Гб
Автор: Chanka
Дата сообщения: 03.09.2007 19:50
Victor_Dobrov
Тут да лучше так 00.00
Автор: iTASmania_Inc
Дата сообщения: 03.09.2007 20:24
Уважаемый ALL!
Повторюсь:
Не могли Вы помочь мне организовать форму не для выбора папок, а для выбора файла, примерно такую:
Только разумеется, в упрощённом варианте.
Заранее благодарен.
Автор: Victor_Dobrov
Дата сообщения: 04.09.2007 02:18
Chanka

Цитата:
Тут да лучше так 00.00

В гигабайте не 100 Мб, поэтому показывать после запятой всего 2 знака не совсем правильно, ведь это не проценты.
Автор: Chuvakstepan
Дата сообщения: 04.09.2007 08:26
iTASmania_Inc
Перезалей рисунок плииз
Автор: Chanka
Дата сообщения: 04.09.2007 08:28
Victor_Dobrov
Там так до 10 мб 0.000 а после 00.00. Разве так плохо?
Автор: GloThin
Дата сообщения: 04.09.2007 09:37
Victor_Dobrov,Chanka
Что Вы спорите как лучше,как правильнее отображать знаки после запятой. На вкус и цвет друзей нет.
Для исключения таких споров я некоторое время назад для скрипта NightW0lf писал такую функцию:

Код:
function JustifySize(Size1: double; count: integer): string;
var i, n: integer;
s1, s2, s3: string;
begin
n := 1;
for i := 1 to COunt do
begin
n := n * 10;
end;
s1 := floattostr(round(Size1 * n) / n);

if pos(',', s1) <> 0 then
begin
s2 := copy(s1, 1, pos(',', s1) - 1);
s3 := copy(s1, pos(',', s1) + 1, length(s1) - pos(',', s1));
end
else
begin
s2 := s1;
s3 := '000'
end;
n := length(s2);
if n < 3 then for i := 1 to (3 - n) do s2 := ' ' + s2;
n := length(s3);
if n < COunt then for i := 1 to (Count - n) do s3 := s3 + '0';
//MsgBox(s1+#13#10+s2+' --- '+s3 , mbInformation, MB_OK);
result := s2 + ',' + s3;
end;

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768

Предыдущая тема: Mail.ru агент - вход не выполнен


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