Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Inno Setup (создание инсталяционных пакетов)

Модерирует : gyra, Maz

Widok (17-06-2008 18:16): лимит страниц. продолжаем здесь  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100

   

Widok



Moderator-Следопыт
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Это мощное средство для создания установочных пакетов (дистрибутивов) программ. Поддерживается шифрование, установка пароля, различные задачи по завершении установки. Можно создавать свои страницы, используя Inno Setup Form Designer.
По сравнению с NSIS (основной конкурент на бесплатной основе) проще в настройке, имеет более понятную структуру скрипта.  
 
Последний релиз: 5.2.3 [10.03.2008]
История версий | скачать | все сборки || Скачать Preprocessor | все сборки
 
Русификатор от NightW0lf для версии 5.2.0
Скачать | зеркало
 
Русская справка к версиям 5.0.xx
Скачать | зеркало || cкачать в .chm формате
И снова BagIra на высоте
 
Руководство по расширенным возможностям Inno Setup 5 (не для чайников) от Kindly
Версия 5.1 скачать || версия 5 скачать|зеркало || версия 4 скачать|зеркало || версия 3 скачать|зеркало
 
Inno Setup Extensions Knowledge Base (содержит ответы на многие вопросы)
Новая версия (Web-интерфейс) || Старая chm-версия скачать | зеркало
 
Corona Skin & Check System Requirements от Victor_Dobrov
Скачать скрипт | зеркало | скриншот | описание | старая версия | InnoSetup Upgrade | Слайд-шоу
Обложка для Inno Setup. Сделает инсталлятор более симпатичным и добавляет расширения: Проверка минимальных требований. Расширенный прогрессбар. Расчёт времени до завершения распаковки. Список дисков. Слайдшоу или AVI-файл в фоновом окне. Компактный режим установки. Деинсталляция неучтённых файлов. Экран справки/скриншота. Медиаплеер и многое другое...
 
Примечание: начиная с версии 5.1.10 в Inno Setup при использовании в инсталляторе фонового изображения формата BMP стало глючить возможность растягивания картинки на весь экран - чтобы исправить добавьте этот код.
Если необходимо использовать метод проверки внешнего файла через сумму MD5 (который описан в 5 версии руководства от Kindly) для запуска инсталлятора, то понадобится калькулятор хеша MD5, калькулятор сумм MD5, SHA-256, CRC32. Если требуется узнать, какие ключи в реестр вносит та или иная программа, то понадобится RegShot.


Дополнительные утилиты для Inno Setup


Мощная надстройка для Inno Setup, при помощи которой создавать свои инсталляторы становится очень просто.
 
Последний релиз: 5.2.1 [15.10.2007]
Скачать | зеркало  
 
Русификатор
Скачать | зеркало

Распаковщик установок, сделанных с помощью Inno Setup. При распаковке извлекаются  ресурсы и скрипт установки (немного усечённый). Возможно подключение к Total Commander или FAR с помощью MultiArc плагинов.
Поддерживает распаковку инсталляторов, сделанных с помощью Inno Setup начиная с версии 3.0.0-beta по 5.2.3
 
Последний релиз: 0.20 [23.05.2008] New
Скачать  
 

Удобная оболочка для облегчения написания скриптов установки для Inno Setup. Обладает некоторыми полезными функциями, которых нет ни у самого Inno Setup, ни у ISTool.
 
Последний релиз: 1.0.3.1 [23.03.2008]
Скачать | обновление | изменения
Примечание: обновление ставится только на Inno Setup Quickstartpack 5.2.3.
 
Старая версия [ScriptMaker 5.1.6.9 от 09.07.2006]
Русификатор версии 5.1.5 от GloThin | зеркало | зеркало | зеркало пароль: ruboard

Примечание для всех участников

Длинные куски кода помещайте под тегом more, дабы дать возможность знатокам Inno Setup прочитать сам вопрос, а не пролистывать бесконечно длинные листинги скриптов в посте.

Всего записей: 24190 | Зарегистр. 07-04-2002 | Отправлено: 17:33 25-09-2007 | Исправлено: juvaforza, 13:39 24-05-2008
maxdddca123

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Victor_Dobrov
Помогите плиз. Мне нужно показывать серийник ХДД юзеру:
Сделал вот так
 
function GetVolumeInformation(PathName,VolumeName: PChar; VolumeNameSize,VolumeSerialNumber,MaxComponentLength,FileSystemFlags: Longint; FileSystemName: PChar; FileSystemNameSize: Longint): Longint; external 'GetVolumeInformationA@kernel32.dll stdcall';
 
Procedure CheckRequirements(Sender: TObject); var Version: TWindowsVersion; CpuMHZ: Cardinal;  
Begin
GetVolumeInformation(ExpandConstant('{sd}\'), VolumeName, BufferLen-1, VolumeSerialNo, MaxComponentLength, FileSystemFlags, FileSystemName, BufferLen-1);
end;
 
function InitializeSetup():boolean;
 
begin
s:= IntToStr(VolumeSerialNo);
MsgBox(s, mbInformation, MB_OK);
result:=true;
end;
 
в итоге S получается равным нулю.. Непойму почему. Помогите разобраться плиз !

Всего записей: 211 | Зарегистр. 14-12-2006 | Отправлено: 19:21 22-12-2007 | Исправлено: maxdddca123, 19:23 22-12-2007
Victor_Dobrov



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
maxdddca123, вот рабочий скрипт получения серийника диска.

Всего записей: 742 | Зарегистр. 27-09-2005 | Отправлено: 00:01 23-12-2007
GRom V

Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
serg_aka_lain

Цитата:
ShellExec('', ExpandConstant('{src}\Package.msi'),'/qn', '', SW_SHOW, ewWaitUntilTerminated, ErrorCode)

 
В этом случае открывается папка {src} - вместо запуска Package.msi
Еще есть предложения?

Всего записей: 466 | Зарегистр. 31-10-2006 | Отправлено: 02:14 23-12-2007
serg_aka_lain

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
GRom V
 
Не верю! , сам проверил только что и код работает,
запускается в тихом режиме.
 
function InitializeSetup(): Boolean;
var ErrorCode : Integer;
 
begin
 ShellExec('', ExpandConstant('{src}\vcredist.msi'),'/qn', '', SW_SHOW, ewWaitUntilTerminated, ErrorCode);
 Result:= True;
end;
 
 
Из секции Run разве не проще?
 
Filename: "msiexec.exe"; Parameters: "-i ""{src}\vcredist.msi"" -qn"; WorkingDir: "{src}";

Всего записей: 340 | Зарегистр. 13-01-2007 | Отправлено: 03:16 23-12-2007 | Исправлено: serg_aka_lain, 03:31 23-12-2007
GRom V

Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Все...работает - просто я ошибся. Спасибочки!

Цитата:
Из секции Run разве не проще?

 
Мне нужно было чтоб файл запускался до инсталлятора. Из Run не вкатит

Всего записей: 466 | Зарегистр. 31-10-2006 | Отправлено: 05:50 23-12-2007
Victor_Dobrov



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Немного изменил Шапку - переписал описание Inno Script Generator и Corona Skin.

Всего записей: 742 | Зарегистр. 27-09-2005 | Отправлено: 06:39 23-12-2007
elchupakabra



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите пожалуйста
Есть значение реестра которое надо интегрировать инсталляторомю Вот кусок секции получившегося скрипта:
ValueData: "slz~{X|aLvgG\\nWJT"
При компиляции ругается на символ { и не хочет компилировать инсталлятор... можно ли как-то избежать этих граблей, чтобы синтаксис игнорировался...
Заренее спасибо.

Всего записей: 1571 | Зарегистр. 05-11-2005 | Отправлено: 11:46 23-12-2007 | Исправлено: elchupakabra, 11:54 23-12-2007
maxdddca123

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Victor_Dobrov
Спасибо, но как то некорректно определяется сейрийник. Я смотрю его в программе Everest (диагностическая утилита), вот там отображается серийник что то типа 7GRHD0465RT, а с тем скриптом который вы дали получается -35453245 (именно со знаком минус почему то). Можно ещё как то доработать пожалуйста?

Всего записей: 211 | Зарегистр. 14-12-2006 | Отправлено: 14:07 23-12-2007
serg_aka_lain

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
elchupakabra

Цитата:
При компиляции ругается на символ { и не хочет компилировать инсталлятор...

 
Ну так напиши так - ValueData: "slz~{{X|aLvgG\\nWJT"

Всего записей: 340 | Зарегистр. 13-01-2007 | Отправлено: 14:08 23-12-2007
Victor_Dobrov



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
maxdddca123
Этот код показывает серийный номер тома файловой системы, который задаётся при форматировании. Только непонятно, откуда взялся минус, у меня для всех дисков числа положительные. Больше ничем помочь не могу...

Всего записей: 742 | Зарегистр. 27-09-2005 | Отправлено: 15:21 23-12-2007
Seeba

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте!
У меня два вопроса:
 
1. Мне нужно удалять папку с содержимым сразу после нажатия снопки "Установить".
Как это сделать именно с нажатием кнопки "Установить", но до непосредственной установки файлов знаю
 
procedure CurStepChanged(CurStep:TSetupStep);
  begin
   if CurStep=ssInstall then RemoveDir(ExpandConstant('{app}\...'));
  end;
 
а вот удалить не получается, т.к. RemoveDir удаляет только пустые папки. Подскажите пожалуйста как удалить папку.
Спасибо!
 
2. Как добавить сообщение?

Спасибо!

Всего записей: 1 | Зарегистр. 23-12-2007 | Отправлено: 16:09 23-12-2007 | Исправлено: Seeba, 16:12 23-12-2007
serg_aka_lain

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Seeba
 
В личке код по твоим вопросам.

Всего записей: 340 | Зарегистр. 13-01-2007 | Отправлено: 17:37 23-12-2007
Genri

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
maxdddca123 -- тебе нужен серийный номер диска или тома?
Если ничего не имеешь против использования длл, можешь и тот и другой получить примерно так:

Код:
 
[Setup]
AppName=VolumeSerialNo
AppVerName=VolumeSerialNo
CreateAppDir=false
 
[Files]
Source: ISTask.dll; Flags: dontcopy
 
[Code]
function SerialNumberDisk(lpRootPathName: PChar): PChar;
external 'SerialNumberDisk@files:ISTask.dll stdcall delayload';
 
function SerialNumberHDD(Controller, Drive: Integer): PChar;
external 'SerialNumberHDD@files:ISTask.dll stdcall delayload';
 
 
//**************************************************//
function InitializeSetup(): Boolean;
var
  sn: string;
begin
  sn:= SerialNumberHDD(0,0) + #10#13 + SerialNumberDisk('c:\');
 
 MsgBox(sn, mbInformation, MB_OK);
 
Result:=True;
end;
 


Всего записей: 872 | Зарегистр. 06-09-2003 | Отправлено: 18:22 23-12-2007
maxdddca123

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Genri
Ой, как приятно вас снова видеть - палочка выручалочка Да с этим кодом то что надо, спасибо огромное. Вы как всегда на высоте !
А ещё подскажите если у меня стоит несколько ХДД то параметры какого из них определяются ? Как это поменять что бы опреедлялось для другого?

Всего записей: 211 | Зарегистр. 14-12-2006 | Отправлено: 06:48 24-12-2007 | Исправлено: maxdddca123, 06:54 24-12-2007
Kindly



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Genri, не мог бы ты сообразить примерчик чтения и записи данных в XML файлах? Вещь становится актуальной.

Всего записей: 3000 | Зарегистр. 04-08-2005 | Отправлено: 12:07 24-12-2007
Genri

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
maxdddca123

Цитата:
если у меня стоит несколько ХДД то параметры какого из них определяются ? Как это поменять что бы опреедлялось для другого?
-- если речь идет о SerialNumberHDD, то серийник определяется для диска с номером <Drive> на контроллере с номером <Controller>. Т.е. :
SerialNumberHDD(0,0) - первый диск на первом контроллере
SerialNumberHDD(1,3) - четвертый диск на втором контроллере
.. и.т.д.
 
Можешь перебирать в цикле - контроллеры от 0 до 15 и диски от 0 до 3 на каждом контроллере.  
 
Kindly -- я не спец по XML. Для себя делал так
 
 
 
Добавлено:
Пример XML-файла

Всего записей: 872 | Зарегистр. 06-09-2003 | Отправлено: 18:55 24-12-2007
Genri

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Kindly -- запись наверно так. Как я уже говорил - я сам не спец в хмл. Пример брал на http://www.script-coding.info/XMLDOMscripts.html и адаптировал под инно.

Всего записей: 872 | Зарегистр. 06-09-2003 | Отправлено: 00:23 25-12-2007
Kindly



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Genri, неплохо - спасибо, будем юзать
 
Genri, в кое-каких проектах мне приходится использовать обновление проверки, т.е. нажал кнопку "Refresh" - сработала определенная функция. Задача состоит в том, чтобы какая-либо проверка выполнялась через определенный интервал времени автоматически, без ручного нажатия. Это актуально, например, если создавать в Inno свой игровой авторан, когда будет совершаться проверка на определенную запись в реестре, и кнопки будут менять состояние. В апи справочнике нарыл функции для построения таймера:
 
KillTimer
QueryPerformanceCounter
QueryPerformanceFrequency
SetTimer
TimerProc  
 
Но разобраться в написании кода не смог. В идеале нужно так: приложение запускается, стартует таймер, через каждую секунду выполняется указанная функция (например, считывание определенной записи реестра), ну и ес-но таймер останавливается при закрытии приложения. Что можно сделать по этому поводу?

Всего записей: 3000 | Зарегистр. 04-08-2005 | Отправлено: 13:17 25-12-2007
maxdddca123

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Kindly
А что это за апи справочник ? Можно его скачать или посмотреть как нить ?

Всего записей: 211 | Зарегистр. 14-12-2006 | Отправлено: 13:42 25-12-2007
Genri

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Kindly

Цитата:
если создавать в Inno свой игровой авторан
-- микроскопом - гвозди?
 
Вероятно проблема в том, что инно не поддерживает обратный вызов. Я тоже на эти грабли наступал. В старой теме есть вариант решения. Смотри от http://forum.ru-board.com/topic.cgi?forum=5&topic=4801&start=760#21 и ниже.

Всего записей: 872 | Зарегистр. 06-09-2003 | Отправлено: 15:08 25-12-2007
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100

Компьютерный форум Ru.Board » Компьютеры » Программы » Inno Setup (создание инсталяционных пакетов)
Widok (17-06-2008 18:16): лимит страниц. продолжаем здесь


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru