Войти

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


Страниц : [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 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125

El Sanchez
28-03-2013, 19:06
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме 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/thread-218969.html)
Скрипты Inno Setup. Помощь и советы [часть 5] (http://forum.oszone.net/thread-235078.html)

sergey3695
28-03-2013, 19:25
Как сделать чтобы взависимоти от распаковки через cmd, двигался прогрессбар и отображались проценты? (сторонние библиотеки не нужны, про isdone (ISExec) я знаю)

Gnom_aka_Lexander
28-03-2013, 21:21
El Sanchez, я про это:
Цитата Gnom_aka_Lexander:
inc(dc); » почему-же. в полной версии наличиствуют строго эти папки и только эти. и результат будет какой нужен в любом случае, попадется неправильная папка до или после достижения контрольного числа 11. едисвенное, для дополнительных милисекунд можно еще брикнуть на счет 12, и вернуть фальс, ибо дальше можно не искать.
ерез cmd, двигался прогрессбар и отображались проценты? »
ну.. можно повесить хук на окно консоли и считывать из него текст, наверняка там гдето должны отображаться проценты, либо данные из которых можно вычислить проценты. Так-же можно без этих сложностей с хуками взять другой геморрой - есть гдето функция, с помощью которого можно консольную команду выполнить в мемо (простым языком говоря :) ). Но это помимо гемора еще и вдвое-втрое замедлит процесс выполнения самого приложения, что для пользователя совсем не айс. тут гдето есть реализация распаковки 7-зипа на инно. помимо сомнительности необходимости этой реализации (в инно используется тот-же LZMA-LZMA2 из 7-зипа, все что нужно - открыть справку и настроить, раз хочется именно 7-зиповское сжатие, так это-ж еще и медленно, если учесть для чего используется - для распаковки здоровенных архивов в несколько гигабайт размером. Хотя на размерах в сотню-другую метров 7-зип иногда дает выигрыш, уж не знаю с чем это связано. В общем не мороч себе г7олову, не нужно тебе это. То что ты хочешь - неизбежно дополнительные глюки и тормоза.

habib2302
28-03-2013, 21:46
vint56, и как еще сделать так,чтобы лого работало и в деинсталляторе

saurn
28-03-2013, 22:01
и как еще сделать так,чтобы лого работало и в деинсталляторе »

Ну, так же, только на UninstalProgressForm

procedure InitializeUninstallProgressForm;
begin
CreateLogo:= ImgLoad(UninstallProgressForm.Handle, ExpandConstant('GLogo.png'), ScaleX(5), ScaleY(325), ScaleX(170), ScaleY(34), True, True);
ImgApplyChanges(UninstallProgressForm.Handle);

...
И так далее.

habib2302
28-03-2013, 22:29
saurn, лучше дай полностью скипт

saurn
28-03-2013, 22:39
habib2302

Пример (http://rghost.ru/44854528)

habib2302
28-03-2013, 22:53
Inno под рукой нет, чтобы проверить. Проверяйте сами. »
inno есть под рукой и проверил.выдает ошибку при удалении.вот скрин
http://i52.fastpic.ru/big/2013/0328/aa/e74c9034a741d62acf3b267818370faa.png (http://i53.fastpic.ru/big/2013/0328/77/6a2be44deebfb68b7b78754ce3879d77.png)

El Sanchez
28-03-2013, 22:54
почему-же. в полной версии наличиствуют строго эти папки и только эти. и результат будет какой нужен в любом случае, попадется неправильная папка до или после достижения контрольного числа 11. едисвенное, для дополнительных милисекунд можно еще брикнуть на счет 12, и вернуть фальс, ибо дальше можно не искать. »
Gnom_aka_Lexander, я про процедуру inc из Delphi. Нет ее в Inno.:wink:

saurn
28-03-2013, 23:37
habib2302, исправил. Архив с примером для инсталятора и деинсталятора прилепил в мой предыдущий пост.

habib2302
29-03-2013, 00:06
saurn, огромное спасибо!!!!!!

Alloc
29-03-2013, 16:43
saurn, Спасибо большое за ответ. Теперь все работает. Не подскажешь, может быть где то можно скачать коллекцию модулей для Inno Setup наподобие Innocallback.dll? Я знаю есть сборка очень хорошая "Inno Ultra", но к сожалению в ней почему то не работают скины... не знаю по какой причине.. хотя в предыдущих версиях помню работало все...

saurn
29-03-2013, 17:31
Alloc
Это не мне спасибо, а Johny777

Так в Innoultra и так собраны все необходимые библиотеки. Строго говоря, там те же самые материалы и программы, которые можно найти на просторах паутины, только собранные вместе и упакованные в инсталятор для удобства.

На счет скинов: я ими не пользуюсь, но думаю вы просто используете не ту версию библиотеки. Оная есть в двух вариантах, для ANSI и UNICODE. Какой у вас компилятор(ANSI/UNICODE) такую же версию библиотеки и надо использовать.

Crazy Noise
29-03-2013, 19:53
читать дальше » »Благодарю!


А как можно сделать?
Если найдено одно значение а второй нет, то инсталлятор выдал сообщение и не запустился.
Если найден второе а первое нет, тоже выдал сообщение и не запустился.
Если найдены оба значения, то тоже выдал сообщение и не запустился.
Запускался бы лишь в том случае, когда эти значения были другими.

Пробовал добавлять к NetFrameWorkInstalled и MyValueData номера чтоб различались.


[*Code]
function InitializeSetup(): Boolean;
var
NetFrameWorkInstalled, MyResult: Boolean;
NetFrameWorkInstalled2, MyResult: Boolean;
MyValueData: Cardinal;
MyValueData2: Cardinal;

begin
begin
if RegQueryDWordValue(HKLM, 'SOFTWARE\Adobe\Adobe ARM\1.0\ARM', 'iCheckReader', MyValueData) then
NetFrameWorkInstalled := MyValueData = $00000000;

if not NetFrameWorkInstalled then
Result := True else
MyResult := MsgBox('Найден ключ $00000000', mbConfirmation, MB_OK) = idOk;
end;

begin
if RegQueryDWordValue(HKLM, 'SOFTWARE\Adobe\Acrobat Reader\11.0\Installer\Optimization', 'iCheckReader', MyValueData2) then
NetFrameWorkInstalled2 := MyValueData2 = $00000001;

if not NetFrameWorkInstalled2 then
Result := True else
MyResult := MsgBox('Найден ключ $00000001', mbConfirmation, MB_OK) = idOk;
end;
end;

[*Code]
function InitializeSetup(): Boolean;
var
NetFrameWorkInstalled, MyResult: Boolean;
NetFrameWorkInstalled2, MyResult: Boolean;
MyValueData: Cardinal;
MyValueData2: Cardinal;

begin
if RegQueryDWordValue(HKLM, 'SOFTWARE\Adobe\Adobe ARM\1.0\ARM', 'iCheckReader', MyValueData) then
NetFrameWorkInstalled := MyValueData = $00000000;

if not NetFrameWorkInstalled then
Result := True else
MyResult := MsgBox('Найден ключ $00000000', mbConfirmation, MB_OK) = idOk;


if RegQueryDWordValue(HKLM, 'SOFTWARE\Adobe\Acrobat Reader\11.0\Installer\Optimization', 'iCheckReader', MyValueData2) then
NetFrameWorkInstalled2 := MyValueData2 = $00000001;

if not NetFrameWorkInstalled2 then
Result := True else
MyResult := MsgBox('Найден ключ $00000001', mbConfirmation, MB_OK) = idOk;
end;

всё равно не так. Больше идей нет.

Mailchik
29-03-2013, 20:58
Crazy Noise, [Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application

[Code]
function InitializeSetup(): Boolean;
var
NetFrameWorkInstalled, MyResult: Boolean;
MyValueData, MyValueData2: Cardinal;
begin
if RegQueryDWordValue(HKLM, 'SOFTWARE\Adobe\Adobe ARM\1.0\ARM', 'iCheckReader', MyValueData)
and RegQueryDWordValue(HKLM, 'SOFTWARE\Adobe\Acrobat Reader\11.0\Installer\Optimization', 'iCheckReader', MyValueData2) then
NetFrameWorkInstalled := (MyValueData = $00000000) xor (MyValueData2 = $00000001);

if NetFrameWorkInstalled then
Result := True else
MyResult := MsgBox('Найден ключ ' + FloatToStr(MyValueData)
+ ' & ' + FloatToStr(MyValueData2), mbConfirmation, MB_OK) = idOk;
end;

habib2302
29-03-2013, 21:42
я хочу задать несколько вопросов ради интереса и ради пользы.какие есть проверки например как эти not IsWin64, IsWin64 и их описание?

Gnom_aka_Lexander
29-03-2013, 21:45
habib2302, это не проверки. это встроенные функции. справка, раздел встроенные функции, там все с описаниями.
я про процедуру inc из Delphi. Нет ее в Inno. »
у меня эта функция там не единственная из расширенной версии инно. ;)

habib2302
29-03-2013, 21:59
Gnom_aka_Lexander, в какой справке?если ты имеешь виду в русской справке,то там такого раздела нету

Gnom_aka_Lexander
29-03-2013, 22:08
habib2302, без разницы. русская отличается только своей русскоязычностью и парой факов, не более. смотреть можно в любой и там и там есть описания всех функций. как встроенных так и внешних. Инно задокументирована на 100%

habib2302
29-03-2013, 22:21
Gnom_aka_Lexander, нашел




© OSzone.net 2001-2012