Войти

Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 5]


Страниц : [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

El Sanchez
21-05-2012, 03:49
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме Inno Setup. Прочие вопросы (http://forum.oszone.net/showthread.php?p=1201499#post1201499).



Русская справка (http://rghost.ru/users/Arsen19/releases/Russkaya-spravka-k-Inno-Setup) в формате .chm к версии 5.x, авторы перевода bugron (http://forum.ru-board.com/profile.cgi?action=show&member=bugron), BagIra (http://forum.ru-board.com/profile.cgi?action=show&member=BagIra);

Inno Setup Extensions Knowledge Base (http://www.vincenzo.net/isxkb/index.php?title=Special:AllPages) - онлайн справочник, содержит ответы на многие вопросы | старая chm-версия (http://www.vincenzo.net/isxkb/images/5/57/Isxkbchm.zip);

Inno Setup Scripting 5.1 (http://rapidshare.com/files/35134896/iss_setup.exe.html) - руководство по расширенным возможностям Inno Setup от Kindly (http://forum.ru-board.com/profile.cgi?action=show&member=Kindly);

Коллекция скриптов (http://victor-dobrov.narod.ru/InnoSetupScripts.7z) | Сборник вопросов (http://victor-dobrov.narod.ru/InnoSetupFAQ_ru-board.chm);

Сборник скриптов (http://narod.ru/disk/7844921001/Inno%20Faq%201.4.chm.html) в формате .chm от Krinkels (http://www.forum.oszone.ru/member.php?userid=223950);

Готовые решения (http://innoultra.ru/?page_id=18) с сайта innoultra.ru (http://innoultra.ru);

Cборник скриптов и примеров (http://krinkels.org/showthread.php?t=7) с сайта krinkels.org (http://krinkels.org);




Компоненты основных страниц (http://forum.oszone.net/post-1096943-634.html), (ссылка на сообщение);
Бегущая строка (http://www.forum.oszone.ru/post-1071300-518.html) - бегущая строка на WizardForm, (ссылка на сообщение);
Эффект печатной машинки (http://www.forum.oszone.ru/post-1082174-553.html) - текст на WizardForm появляется по одной букве, (ссылка на сообщение);
Ultimate Test (http://www.forum.oszone.ru/post-1212059-48.html) - проверка системных требований для инсталлятора с чёрным фоном, (ссылка на сообщение);
Проверка системных требований (http://www.forum.oszone.ru/post-1230777-185.html) - пример проверки системных требований без get_hw_caps.dll, (ссылка на сообщение);
Картинка на страницах инсталлятора (http://www.forum.oszone.ru/post-1242285-250.html) - пример скрипта, показывающий как растянуть стандартную картинку на всю страницу, (ссылка на сообщение);
Наложение изображений на стандартные кнопки (http://forum.oszone.net/post-1902066-1569.html) - пример, показывающий как использовать свои изображения на кнопках, (ссылка на сообщение);
Свой шрифт в инсталляторе (вариант №1) (http://forum.oszone.net/post-1875376-964.html) - пример скрипта для использования своего шрифта в инсталляторе, (ссылка на сообщение);
Свой шрифт в инсталляторе (вариант №2) (http://forum.oszone.net/post-1973652-702.html) - пример скрипта для использования своего шрифта в инсталляторе, (ссылка на сообщение);
Цвет прогресс-бара (http://forum.oszone.net/post-1693828-1893.html) - пример скрипта для замены цвета прогресс-бара на свой, (ссылка на сообщение);
Создание кастомного прогресс-бара (http://www.forum.oszone.ru/post-1281679-544.html) - имитация кастомного прогресс-бара, (ссылка на сообщение);
Создание кастомного чекбокса (http://forum.oszone.net/post-1798150-166.html) - пример скрипта для создания своего чекбокса, всего 12 состояний, (ссылка на сообщение);
Создание кастомного диалогового окна (http://forum.oszone.net/post-2043384-1383.html) - пример скрипта для создания своего диалогового окна, (ссылка на сообщение);
Видео на фоновом окне (http://forum.oszone.net/post-1797189-152.html) - пример скрипта для воспроизведения стандартного avi-файла на фоновом окне инсталлятора, (ссылка на сообщение);
Скрипты инсталляторов для игр (http://forum.ru-board.com/topic.cgi?forum=5&topic=36421&start=0&limit=1&m=6#1) - скрипты инсталляторов для игр, (ссылка на сообщение);
Выделение всех компонентов (http://www.forum.oszone.ru/post-1276947-444.html) - пример показывает как выделить или снять отметки со всех компонентов одной кнопкой, (ссылка на сообщение);
Запрет установки в корень системного диска (http://www.forum.oszone.ru/post-1210003-46.html), (ссылка на сообщение);
Автовыбор диска установки (http://www.forum.oszone.ru/post-1217528-97.html) - определяет логические диски на компьютере и предлагает установить на первый логический диск не являющийся системным, (ссылка на сообщение);
Распаковка архивов FreeArc (http://www.forum.oszone.ru/post-1300871-729.html) - новая версия скриптов для распаковки архивов FreeArc, (ссылка на сообщение);
Работа с архивами 7z (http://forum.oszone.net/post-2012750-1182.html) - пример скрипта для работы с архивами 7z, (ссылка на сообщение);
Проверка на кирилицу в пути установки (вариант №1) (http://forum.oszone.net/post-1891325-1357.html) - пример скрипта для проверки наличия кириллицы в пути установки, (ссылка на сообщение);
Проверка на кирилицу в пути установки (вариант №2) (http://forum.oszone.net/post-1891353-1361.html) - пример скрипта для проверки наличия кириллицы в пути установки, (ссылка на сообщение);
Проверка на кирилицу в пути установки (вариант №3) (http://forum.oszone.net/post-1904620-1632.html) - пример скрипта для проверки наличия кириллицы в пути установки, (ссылка на сообщение);
Выкатывающаяся панель (вариант №1) (http://forum.oszone.net/post-1904450-1629.html) - пример создания выкатывающейся панели, (ссылка на сообщение);
Выкатывающаяся панель (вариант №2) (http://forum.oszone.net/post-1917798-2074.html) - пример создания выкатывающейся панели, (ссылка на сообщение);
Выкатывающаяся панель (вариант №3) (http://forum.oszone.net/post-2003766-1118.html) - пример создания выкатывающейся панели, (ссылка на сообщение);
Стандартные папки Windows (http://www.forum.oszone.ru/post-1218002-103.html) - пример скрипта, позволяющий получить путь к стандартным папкам Windows, (ссылка на сообщение);
ExecAndWait.iss (http://forum.oszone.net/post-1325616-881.html) - скрипт, который позволяет запускать другие программы с ожиданием их завершения и при этом инсталлятор остаётся "живым", т.е. отвечает на действия пользователя, (ссылка на сообщение);
Проверка наличия .NET Framework (http://forum.oszone.net/post-1574554-263.html) - пример проверки и загрузки в случае отсутствия .NET Framework'a, (ссылка на сообщение);
MsiQueryProductState.iss (http://forum.oszone.net/post-1731731-2725.html) - пример скрипта для проверки установки программы, установленной с помощью Windows Installer, (ссылка на сообщение);
Определение информации о версии файла (http://forum.oszone.net/post-1643761-1146.html) - пример скрипта для определения информации о версии файла, которую можно посмотреть в свойствах файла на вкладке Версия, (ссылка на сообщение);
Поиск файла по маске (http://www.forum.oszone.ru/post-1351758-1312.html), (ссылка на сообщение);
Спрятать окно инсталлятора (http://www.forum.oszone.ru/post-1475670-2201.html) - спрятать окно инсталлятора без использования параметров командной строки /SILENT, /VERYSILENT, (ссылка на сообщение);
Окно инсталлятора поверх всех остальных (http://forum.oszone.net/post-1628287-1031.html) - окно инсталлятора поверх всех остальных, (ссылка на сообщение);
Замена меню "О программе" (http://forum.oszone.net/post-1660375-1363.html) - пример скрипта для замены текста меню "О программе", (ссылка на сообщение);
Отключить сообщение о нехватке места на HDD (http://forum.oszone.net/post-1839804-655.html) - пример скрипта для отключения сообщения о нехватке места на HDD. С небольшими изменениями может использоваться для отключения и других сообщений, вызванных внутренними обработчиками Inno, (ссылка на сообщение);
Отображение размера устанавливаемого файла (http://forum.oszone.net/post-1882481-1175.html) - пример скрипта для приведения размера устанавливаемого файла из байтовой формы в удобочитаемую (вариант №1) и отображения на втором прогрессбаре, (ссылка на сообщение);
Перевод размера файла в удобочитаемую форму (http://forum.oszone.net/post-1882594-1184.html) - пример скрипта для приведения размера файла из байтовой формы в удобочитаемую (вариант №2), (ссылка на сообщение);
Использование объекта FileSystemObject (http://forum.oszone.net/post-1998107-1061.html) - примеры использования методов и свойств объекта FileSystemObject, (ссылка на сообщение);
Копирование файлов с прогрессом (http://forum.oszone.net/post-2032676-1327.html) - пример скрипта для копирования файлов и директорий с отображением прогресса операции, маски поддерживаются, (ссылка на сообщение);
ConvertString.iss (http://forum.oszone.net/post-1643707-1144.html) - пример скрипта для конвертирование строк в различные кодировки, (ссылка на сообщение);
Работа с XML (http://forum.oszone.net/post-1798658-175.html) - архив с скриптами для работы с xml-документами, (ссылка на сообщение);
SetRestorePoint.iss (http://forum.oszone.net/post-1648495-1205.html) - пример скрипта для создания контрольной точки перед установкой, (ссылка на сообщение);
Определение локального IP-адреса (WMI) (http://forum.oszone.net/post-1669020-1496.html) - пример скрипта для определения локальных IPv4, IPv6-адресов машины (используется WMI), (ссылка на сообщение);
Определение внешнего IP-адреса (http://forum.oszone.net/post-1648368-1204.html) - пример скрипта для определения внешнего IP-адреса машины, на которой запущен инсталлятор (необходимо соединение с интернетом), (ссылка на сообщение);
IsInternetActive.iss (http://forum.oszone.net/post-1860073-827.html) - пример скрипта для определения подключения машины к Интернет, (ссылка на сообщение);
Загрузка файла из Интернет (http://forum.oszone.net/post-1930003-232.html) - пример скрипта для загрузки файла из Интернет, один поток без докачки, (ссылка на сообщение);
Запущен ли процесс (WMI) (http://forum.oszone.net/post-1685154-1693.html) - пример скрипта для определения запущен ли определенный процесс в системе, используя WMI, (ссылка на сообщение);
Запущен ли процесс (http://forum.oszone.net/post-1800689-218.html) - пример скрипта для определения запущен ли определенный процесс в системе, (ссылка на сообщение);
Закрытие процесса (http://forum.oszone.net/post-2040074-1361.html) - пример скрипта для закрытия запущенного процесса, (ссылка на сообщение);
Закрепить ярлык на панели задач в Windows 7 (вариант №1) (http://www.forum.oszone.ru/post-1444931-2009.html) - пример закрепления ярлыка приложения на панели задач в Windows 7, (ссылка на сообщение);
Закрепить ярлык на панели задач в Windows 7 (вариант №2) (http://forum.oszone.net/post-1988566-926.html) - пример закрепления ярлыка приложения на панели задач в Windows 7, (ссылка на сообщение);
Установка гаджета в Windows 7 (http://forum.oszone.net/post-1861100-834.html) - пример установки гаджета в Windows 7 (требуется юникодная версия Inno), (ссылка на сообщение);
Установка драйвера устройства (http://forum.oszone.net/post-1674976-1599.html) - пример скрипта для установки legacy- и WDM- (требуется утилита devcon.exe) драйверов устройств, (ссылка на сообщение);




ISTool (http://sourceforge.net/projects/istool/) - неплохой редактор скриптов Inno Setup.
Последняя версия: 5.3.0.1 [29.09.2009] - Скачать (http://sourceforge.net/projects/istool/files/istool-5.3.0.1.exe/download) | зеркало (http://sourceforge.net/settings/mirror_choices?projectname=istool&filename=istool-5.3.0.1.exe);


Inno Script Generator - генератор скриптов Inno Setup. Обладает некоторыми полезными функциями, которых нет ни у самого Inno Setup, ни у ISTool.
Последняя версия: 1.0.3.1 [23.03.2008] - Скачать (http://www.freedownloadsplace.com/Inno-Script-Generator-Download-31392.htm) | зеркало на русифицированную программу (http://ifolder.ru/21111525);
Примечание: Родной сайт www.hisoft2000.de более недоступен, поэтому здесь расположены сторонние ссылки.


Inno Setup Form Designer - редактор страниц Inno Setup, можно создавать свои страницы.
Последняя версия: 2.0.8 [12.11.2006] - Скачать (http://www.mediafire.com/?2m65h5urdcmxrjg);
Примечание: Родной сайт http://isfd.kaju74.de/index.php?isfd более недоступен, поэтому здесь расположены сторонние ссылки.


Inno Setup GameScript Generator (http://forum.csmania.ru/viewtopic.php?f=38&t=4688) - программа генерирует скрипты для Inno Setup . С помощью GameScript Generator и Inno Setup вы сможете быстро создать простенький инсталляционный пакет для любой игры. В инсталлятор можно встроить музыку, слайдшоу и фоновый рисунок. Для специалистов созданный скрипт, возможно, будет неплохой заготовкой для дальнейшей модернизации;


ISSkin (http://isskin.codejock.com/) - Программа для создания и добавления в инсталлятор скинов. Инструкция (http://isskin.codejock.com/gettingstarted.asp).
Последняя версия: 3.0.0.0 [19.01.2010] - Скачать (http://isskin.codejock.com/downloads/ISSkinExample.zip);


ISSJoiner (http://issjoiner.codeplex.com/) - Программа для объединения нескольких скриптов InnoSetup в один.
Последняя версия: 3.0 [23.07.2009]


Converter (http://forum.oszone.net/post-1216149-86.html) - Программа конвертирует reg-файлы в формат *.iss (формат скриптов Inno Setup).
Последняя версия: 0.1.4 [13.03.2010] - Скачать (http://forum.oszone.net/attachment.php?attachmentid=41380&d=1268419710);


[hr]
Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах:
Inno Setup [все вопросы] часть 1 (http://forum.oszone.net/thread-60604.html)
Inno Setup [все вопросы] часть 2 (http://forum.oszone.net/thread-148703.html)
Скрипты Inno Setup. Помощь и советы [часть 3] (http://forum.oszone.net/thread-190621.html)
Скрипты Inno Setup. Помощь и советы [часть 4] (http://forum.oszone.net/post-1741842.html)

Gnom_aka_Lexander
21-05-2012, 10:58
Всем доброй ночи. У меня вопрос: а можно ли сделать так чтоб если рядом с сетапом нет нужного архива фриарк то инсталл показывал его отсутствие? »
Очень просто :
if not FileExist('твой файл') then
if MsgBox('Файл не найден, прервать установку?',mbError, MB_OKCANCEL) = IDOK then // тут прерываем установку, если нажата кнопка ОК

Johny777
21-05-2012, 12:48
Что- то у меня не получается создать ярлык в меню "Пуск"
вылетает с ошибкой

---------------------------
Ошибка запуска
---------------------------
Строка 6653:

Exception: IPersistFile::Save: сбой; код 0x80070003.

Системе не удается найти указанный путь.
---------------------------
ОК
---------------------------
на строке (выделил жирным)


if CurStep = ssPostInstall then
begin
//CreateDir(ExpandConstant('{group}\Source Engine 15'));
CreateShellLink(ExpandConstant('{group}\Source Engine 15\SAVE.lnk'), 'Описание', ExpandConstant('{app}\uninstall\SAVE.exe'), '', ExpandConstant('{app}\uninstall'), ExpandConstant('{app}\combine_icon.ico'), 0, SW_SHOWNORMAL);

Секции [Icons] нет. Значки на рабочем столе создаются (таким же макаром) нормально, а этот не хочет!
Скажите пожалуйста где я опять накосячил :(
прикладываю скрипт с файлом иконки

Gnom_aka_Lexander
21-05-2012, 14:39
Johny777, могу посоветовать создать все-таки, секцию [Icons] и просто скрыть страницу выбора папки в меню пуск. Сам сталкивался с засадой именно с иконками в пуск из кода. сейчас не вспомню точно, но вроде так и пришлось из [Icons] делать.

Edison007
21-05-2012, 17:13
Johny777
Попробуй так:

CreateDir(ExpandConstant('{userprograms}\Source Engine 15'));
CreateShellLink(ExpandConstant('{userprograms}\Source Engine 15\SAVE.lnk'), 'Описание', ExpandConstant('{app}\uninstall\SAVE.exe'), '', ExpandConstant('{app}\uninstall'), ExpandConstant('{app}\combine_icon.ico'), 0, SW_SHOWNORMAL);

Ivan_009
22-05-2012, 10:43
Как в инсталляторе вместо bmp картинок использовать png картинки... :search: Заранее спасибо.

Johny777
22-05-2012, 10:51
Ivan_009,
ботвой в окне инсталла
http://ifolder.ru/22008153
а в сплэше через isgsg.dll, которая идёт в комплекте с GameScript Generator
http://forum.csmania.ru/viewtopic.php?t=4688
этой же библиотекой и фон и слайдшоу (png Jpeg и прочие)

LinkOFF
22-05-2012, 20:46
Лександер, а в какую процедуру вставлять

Gnom_aka_Lexander
22-05-2012, 20:58
LinkOFF, что именно?

Ivan_009
23-05-2012, 13:28
Как сделать, чтобы эта функция; SetWindowLong(WizardForm.Handle, (-20), GetWindowLong(WizardForm.Handle, (-20)) or $2000000); работала вместе со слайдшоу...А то эфекты слишком тормозят... :beta:

Johny777
23-05-2012, 14:34
Ivan_009,
её нужно отключать во время работы той, что отвечает за эффекты
в этом сообщении El Sanchez в первом "читать далее" показано как это сделать (отключить стиль)
http://forum.oszone.net/post-1904450.html#post1904450

ASheff
23-05-2012, 19:32
Доброго времени суток всем, помогите с проблемой:

---------------------------
Ошибка
---------------------------
Runtime Error (at -1:0):


Cannot Import dll:<utf8>C:\Users\usrname\AppData\Local\Temp\is-8C3H3.tmp\mydll.dll.
---------------------------
ОК
---------------------------





в скрипте:

--------------------------------------------------
[Files]
Source: "D:\Projects\mycomp\prod\Utils\mydll\Release\mydll.dll"; DestDir: "{app}"; Flags: ignoreversion


function somefunc(str: string): Integer; external 'somefunc@files:mydll.dll stdcall';
--------------------------------------------------






Mydll написана как unicode с++ проект, экспорт ф-ции происходит вот так:

[CODE]__declspec(dllexport) int somefunc(LPCTSTR szInstLocation);

В чем может быть проблема? Пол дня уже бьюсь..

Ivan_009
23-05-2012, 20:07
Johny777 можно поподробней ато все равно эфекты почемуто глючат :o

Serega
23-05-2012, 20:51
В чем может быть проблема? Пол дня уже бьюсь.. »
LPCTSTR = PAnsiChar;
Одним словом, надо так:

[Files]
Source: "D:\Projects\mycomp\prod\Utils\mydll\Release\mydll.dll"; Flags: dontcopy

[Code]
function somefunc(str: PAnsiChar): Integer; external 'somefunc@files:mydll.dll stdcall';

El Sanchez
23-05-2012, 20:57
все равно эфекты почемуто глючат »
Ivan_009, отключайте стиль, прежде чем начнутся эффекты. Код покажите.

Ivan_009
23-05-2012, 21:22
Вот

El Sanchez
23-05-2012, 22:05
Ivan_009, ок. В процедуре CurPageChanged2 перед InitializeSlideShow отключаете стиль, а после DeinitializeSlideShow включаете назад.

procedure CurPageChanged2(CurPageID: Integer);
begin
If CurPageID=wpInstalling then
begin
SetWindowLong(WizardForm.Handle, (-20), GetWindowLong(WizardForm.Handle, (-20)) xor $2000000);
InitializeSlideShow(WizardForm.Handle, 0, 100, scaleX(778), ScaleY(358), {#Animation}, {#Stretch});
...
if CurPageID=wpFinished then
begin
...
DeinitializeSlideShow;
SetWindowLong(WizardForm.Handle, (-20), GetWindowLong(WizardForm.Handle, (-20)) or $2000000);
...
end;

LinkOFF
24-05-2012, 03:07
Лександер, if not FileExist('твой файл') then
if MsgBox('Файл не найден, прервать установку?',mbError, MB_OKCANCEL) = IDOK then // тут прерываем установку, если нажата кнопка ОК »

Gnom_aka_Lexander
24-05-2012, 09:31
LinkOFF, ну так. Это нужно писать туда, где ты распаковываешь архивы. теоретически можно вообще на запуске проверить их все на наличие, и если хоть одного не хватает - можно смело полностью отменять установку.

ASheff
24-05-2012, 12:13
LPCTSTR = PAnsiChar;
Одним словом, надо так:
Код:
[Files]
Source: "D:\Projects\mycomp\prod\Utils\mydll\Release\mydll.dll"; Flags: dontcopy
[Code]
function somefunc(str: PAnsiChar): Integer; external 'somefunc@files:mydll.dll stdcall';


В общем докладываю: поменял на PAnsiChar вместо string - ничего не изменилось.. Может это тоже внесло конечно свою лепту..

Далее начал ковырять свою dll: вместо _declspec(dllexport) сделал экспорт через .def-файл - всё заработало! :rupor:
в Depends пропал знак вопроса перед именем моей экспортируемой функции, не силен, не знаю, с чем это связано..

Как то так :)




© OSzone.net 2001-2012