Помощник
Здравствуйте, гость ( Вход | Регистрация )
|
Гость_Kindly_*
|
17:03:2005, 16:05
|
|
Инопланетный гость |
(Вопрос по Inno Setup 5) Я извиняюсь за вопрос немножко не в тему. Меня интереcует написание скрипта на Pascal следующего характера: Перед запуском инсталлятора нужна проверка реестра на определённый ключ, и если он существует - должен запускаться мастер инсталляции, а если ключ не существует, то должна вылетать мессага, что прога не найдена - жмите OK чтобы покинуть мастер (ну или другой текст). Вобщем вы программеры - для вас скриптик или только секцию кода написать не составит труда. Поможете такому как мне?
mailto:gubei_vadim@list.ru |
|
Сообщение
#1
|
|
![]() |
|
Гость_Guest_*
|
14:07:2005, 10:34
|
|
Инопланетный гость |
To Zubr:
Из FAQ для Inno Setup: Вопрос: Что именно происходит, если пользователь нажмет Cancel в процессе установки? Ответ: При нажатии Cancel инсталятор отменяет изменения, сделанные им в ходе установки, почти как деинсталятор при удалении программы. Поэтому частично установленное приложение не останется в системе пользователя. В этом-то мой вопрос и состоит, как избежать того, о чём говорится в ответе FAQ... |
|
Сообщение
#91
|
|
|
Гость_Kindly_*
|
14:07:2005, 14:27
|
|
Инопланетный гость |
zubr
Цитата Требуется поместить CheckBox на панель выбора директории для установки, допустим под строкой отображаемого пути и задать ему выполнение, например, включение/отключение функции MyProgCheck. Похоже, неправильно дал пояснение... Имеется в виду, что функция, которая должна выполнятся через CheckBox, должна выполняться непосредственно при установке - не сразу, на подобии выбора компонентов. Такое можно проделать? |
|
Сообщение
#92
|
|
|
|
14:07:2005, 15:26
|
|
Божественный Группа: Модеры Сообщений: 937 Регистрация: 19:11:2003 Пользователь №: 133 Репутация: 16
|
Цитата Я не знаю, какую версию вы используете, но в версии 5.14 внесение любых изменений чревато сообщением о поврежденном инсталляторе, и в FAQ ясно написано, что сам инсталлятор имеет проверку изменения собственной CRC суммы . Пришлите мне свой инсталлятор, я его пропатчу. |
|
Сообщение
#93
|
|
|
|
14:07:2005, 15:33
|
|
Божественный Группа: Модеры Сообщений: 937 Регистрация: 19:11:2003 Пользователь №: 133 Репутация: 16
|
Цитата Похоже, неправильно дал пояснение... Имеется в виду, что функция, которая должна выполнятся через CheckBox, должна выполняться непосредственно при установке - не сразу, на подобии выбора компонентов. Такое можно проделать? Можно, будет время кину код. Цитата Из FAQ для Inno Setup: Вопрос: Что именно происходит, если пользователь нажмет Cancel в процессе установки? Ответ: При нажатии Cancel инсталятор отменяет изменения, сделанные им в ходе установки, почти как деинсталятор при удалении программы. Поэтому частично установленное приложение не останется в системе пользователя. В этом-то мой вопрос и состоит, как избежать того, о чём говорится в ответе FAQ... Ну так глубоко я не копал. Сейчас у меня срочная работа, разгребусь, посмотрю. |
|
Сообщение
#94
|
|
|
|
15:07:2005, 04:02
|
|
Божественный Группа: Модеры Сообщений: 937 Регистрация: 19:11:2003 Пользователь №: 133 Репутация: 16
|
Вот пропатченный файл инсталлятора:
Прикрепленные файлы
|
|
Сообщение
#95
|
|
|
Гость_Kindly_*
|
15:07:2005, 06:02
|
|
Инопланетный гость |
Извиняюсь... Не прав был. Оказывается можно в свойствах файла применить акт "вандализма", только аккуратно (желательно сохранять количество символов в строке). Ну, буду исправляться
В Resource Hacker-e для отображения авторских прав нужно вставить в ресурсе "Version Info" под строкой: VALUE "InternalName" следующее: VALUE "LegalCopyright", "My Rights" \\где My Rights - типа авторство Чтобы сделать русский язык в свойствах пишем там же вместо VALUE "Translation", 0x0409 0x04E4 => VALUE "Translation", 0x0419 0x04E4 Производитель: VALUE "CompanyName", "Заполняем пустые поля" Или так: VALUE "Автор инсталлятора", "I'm" p.s. а проверка на изменение все-таки есть, только, видимо, не такая чувствительная. p.p.s. удаление контекста "About..." забавно, но в "пропатченом" инсталляторе этого не наблюдалось. |
|
Сообщение
#96
|
|
|
Гость_Guest_Юрий_*_*
|
15:07:2005, 10:40
|
|
Инопланетный гость |
To Kindly:
|
|
Сообщение
#97
|
|
|
Гость_Guest_*
|
15:07:2005, 10:42
|
|
Инопланетный гость |
To zubr:
оК |
|
Сообщение
#98
|
|
|
Гость_Kindly_*
|
16:07:2005, 06:13
|
|
Инопланетный гость |
Может, следующий вопрос из-за моей невнимательности, но тем не менее.
Ярлыки, создаваемые в меню "Пуск" зачастую (особенно если их много) могут быть расформированы как угодно. Вопрос: можно ли конкретно задать размещение ярлыков в панели "Пуск" в определенном порядке? |
|
Сообщение
#99
|
|
|
Гость_Guest_Юрий_*_*
|
18:07:2005, 12:31
|
|
Инопланетный гость |
очень захотелось "убить" MessageBox, предупреждающий об удалении файлов перед деинсталляцией, а именно "Are you sure you want to completely remove %1 and all of its components?"... Как сделать так, чтобы подтвержения на удаление не требовалось (соответственно и окно требования подтвержения не появлялось)?
|
|
Сообщение
#100
|
|
|
|
18:07:2005, 20:07
|
|
Божественный Группа: Модеры Сообщений: 937 Регистрация: 19:11:2003 Пользователь №: 133 Репутация: 16
|
Цитата Похоже, неправильно дал пояснение... Имеется в виду, что функция, которая должна выполнятся через CheckBox, должна выполняться непосредственно при установке - не сразу, на подобии выбора компонентов. Такое можно проделать? Вот код: Цитата Из FAQ для Inno Setup: Вопрос: Что именно происходит, если пользователь нажмет Cancel в процессе установки? Ответ: При нажатии Cancel инсталятор отменяет изменения, сделанные им в ходе установки, почти как деинсталятор при удалении программы. Поэтому частично установленное приложение не останется в системе пользователя. В этом-то мой вопрос и состоит, как избежать того, о чём говорится в ответе FAQ... Пришлите код скрипта, у меня почему то при переустановке ничего не удаляется. Цитата Может, следующий вопрос из-за моей невнимательности, но тем не менее. Ярлыки, создаваемые в меню "Пуск" зачастую (особенно если их много) могут быть расформированы как угодно. Вопрос: можно ли конкретно задать размещение ярлыков в панели "Пуск" в определенном порядке? Создавайте свою группу, в которую помещайте устанавливаемые программы. Цитата очень захотелось "убить" MessageBox, предупреждающий об удалении файлов перед деинсталляцией, а именно "Are you sure you want to completely remove %1 and all of its components?"... Как сделать так, чтобы подтвержения на удаление не требовалось (соответственно и окно требования подтвержения не появлялось)? Не получится, можно только текст изменить. |
|
Сообщение
#101
|
|
|
Гость_Guest_Юрий_*_*
|
19:07:2005, 05:01
|
|
Инопланетный гость |
To Zubr:
примерно такой вот упрощённый код даёт удаление заранее установленных компонентов... Последовательность: 1. Установить какой-то один компонент 2. Закончить работу с инсталлятором 3. Запустить инсталлятор вновь 4. Выбрать какой-то ещё не установленный компонент и начать процесс его установки 5. До того момента, как этот компонент установился, нажать Отмена 6. Пойдёт откат 7. Смотрим в папку с установленной программой, компонентов нет (ни заранее установленных, ни того, процесс установки которого прервали) |
|
Сообщение
#102
|
|
|
Гость_Kindly_*
|
19:07:2005, 05:55
|
|
Инопланетный гость |
zubr
Цитата Создавайте свою группу, в которую помещайте устанавливаемые программы. В смысле? Так группа с ярлыками и создается, а после установки ярлыки могут быть в разнобой |
|
Сообщение
#103
|
|
|
Гость_Guest_Юрий_*_*
|
19:07:2005, 06:18
|
|
Инопланетный гость |
To Kindly:
Цитата В смысле? Так группа с ярлыками и создается, а после установки ярлыки могут быть в разнобой , например: "Удалить" может быть в середине программной группы (особенно если ярлыков много). Хотелось бы знать, имеется ли возможность назначения последовательности размещения ярлыков в программной группе с ярлыками. по-моему, размещение ярлыков определяется сортировкой, заданной Вами же для меню Пуск... |
|
Сообщение
#104
|
|
|
Гость_Guest_Юрий_*_*
|
19:07:2005, 13:41
|
|
Инопланетный гость |
Код был представлен с ошибкой... Конечно же в секции [InstallDelete]
должны быть следующие продолжения строк: В данном случае, это не суть важно, т.к. проблема с удалением предустановленных файлов всё равно есть... |
|
Сообщение
#105
|
|
|
Гость_Kindly_*
|
20:07:2005, 05:46
|
|
Инопланетный гость |
zubr CheckBox
Спасибо! Все просто замечательно! Немного доработки - и у меня оказалось то, чего я давно хотел. Но вопросы "по-мелочи" у меня все же есть: 1. Можно ли как-нибудь отключить страницу Приветствия? 2. Существует ли вообще в Inno Setup функции отключения видимости или задействования кнопок (например, как на странице принятия лицензионного соглащения)? |
|
Сообщение
#106
|
|
|
Гость_Guest_Юрий_*_*
|
20:07:2005, 07:26
|
|
Инопланетный гость |
To Kindly:
Цитата 1. Можно ли как-нибудь отключить страницу Приветствия? 2. Существует ли вообще в Inno Setup функции отключения видимости или задействования кнопок (например, как на странице принятия лицензионного соглащения)? 1. страница приветствия отключается при помощи 2. на примере для кнопки "Назад" Мастера можно задисэйблить при помощи следующего кода в секции для кнопки "Далее" надо устанавливать конкретные страницы Мастера, где произойдёт изменение её состояния (т.к. принимая Лицензионное соглашение кнопа автоматом становится доступной)... |
|
Сообщение
#107
|
|
|
Гость_Kindly_*
|
21:07:2005, 17:01
|
|
Инопланетный гость |
Guest_Юрий_*,
Цитата [Setup] DisableStartupPrompt=yes отключает только сообщение при инициализации, а не страницу приветствия. Насчет кнопок, спасибо за намек |
|
Сообщение
#108
|
|
|
|
22:07:2005, 16:58
|
|
Божественный Группа: Модеры Сообщений: 937 Регистрация: 19:11:2003 Пользователь №: 133 Репутация: 16
|
Guest_Юрий_*
Цитата Из FAQ для Inno Setup: Вопрос: Что именно происходит, если пользователь нажмет Cancel в процессе установки? Ответ: При нажатии Cancel инсталятор отменяет изменения, сделанные им в ходе установки, почти как деинсталятор при удалении программы. Поэтому частично установленное приложение не останется в системе пользователя. В этом-то мой вопрос и состоит, как избежать того, о чём говорится в ответе FAQ... Удалите в своем коде секцию и все заработает как вы хотите. Kindly Цитата В смысле? Так группа с ярлыками и создается, а после установки ярлыки могут быть в разнобой , например: "Удалить" может быть в середине программной группы (особенно если ярлыков много). Хотелось бы знать, имеется ли возможность назначения последовательности размещения ярлыков в программной группе с ярлыками. Ярлыки сортируются по алфавиту. Цитата Можно ли как-нибудь отключить страницу Приветствия? В InnoSetup напрямую способа я не нашел, но обмануть можно все что угодно... или почти все Вот код:
|
|
Сообщение
#109
|
|
|
Гость_Kindly_*
|
25:07:2005, 06:43
|
|
Инопланетный гость |
Интересно-то как
У меня вот на днях поинтересовались, но пока не особо силен в Inno, но самому тоже интересно. Вопросы следующего содержания: Как сделать еще один progress-bar? То есть чтобы во время установки отображался не только общий прогресс, но и прогресс для каждого файла в отдельности. А в идеале - еще и отдельный прогресс для backup'a, если он был выбран? |
|
Сообщение
#110
|
|
|
Гость_Guest_Юрий_*_*
|
26:07:2005, 10:34
|
|
Инопланетный гость |
Появился такой вопрос:
На примере для Microsoft Office постараюсь пояснить его. После установки Office на компьютер в диалоге "Установка/Удаление программ" появляется запись об этом. После установки обновления добавляется дочерняя запись "Обновление". Формулировка вопроса: как сделать так, чтобы после обновления появлялась дочерняя запись об обновлении, а старая никуда бы не исчезала и становилась родительской? |
|
Сообщение
#111
|
|
|
|
26:07:2005, 19:56
|
|
Божественный Группа: Модеры Сообщений: 937 Регистрация: 19:11:2003 Пользователь №: 133 Репутация: 16
|
Kindly
Цитата Как сделать еще один progress-bar? То есть чтобы во время установки отображался не только общий прогресс, но и прогресс для каждого файла в отдельности. А в идеале - еще и отдельный прогресс для backup'a, если он был выбран? Сделать еще один progress-bar не проблема, можно юзать функцию CreateOutputProgressPage, но чтобы этот progress-bar правильно работал надо иметь программный контроль над процессом копирования файлов, InnoSetup такую возможность не дает, тут надо использовать более профессиональные инсталляторы. Guest_Юрий_* Цитата На примере для Microsoft Office постараюсь пояснить его. После установки Office на компьютер в диалоге "Установка/Удаление программ" появляется запись об этом. После установки обновления добавляется дочерняя запись "Обновление". Формулировка вопроса: как сделать так, чтобы после обновления появлялась дочерняя запись об обновлении, а старая никуда бы не исчезала и становилась родительской? Чтобы в диалоге "Установка/Удаление программ" появилась запись, достаточно в реестре создать ключ : HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\NameOurProgram, в котором надо создать 2 обязательных параметра: DisplayName значение которого отображается в диалоге, UninstallString в значении которого должен быть путь к программе удаления. |
|
Сообщение
#112
|
|
|
Гость_Guest_Юрий_*_*
|
27:07:2005, 04:47
|
|
Инопланетный гость |
To Zubr:
Цитата Чтобы в диалоге "Установка/Удаление программ" появилась запись, достаточно в реестре создать ключ : HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\NameOurProgram, в котором надо создать 2 обязательных параметра: DisplayName значение которого отображается в диалоге, UninstallString в значении которого должен быть путь к программе удаления. То, что Вы сказали, не вызывает никакого сомнения. Это действительно так. Но я спрашиваю о том, как сделать дочернюю запись, чтобы одновременно была запись об оригинале, а информация об обновлении была записана как дерево под оригиналом. |
|
Сообщение
#113
|
|
|
|
28:07:2005, 04:11
|
|
Божественный Группа: Модеры Сообщений: 937 Регистрация: 19:11:2003 Пользователь №: 133 Репутация: 16
|
Guest_Юрий_*
Цитата Но я спрашиваю о том, как сделать дочернюю запись, чтобы одновременно была запись об оригинале, а информация об обновлении была записана как дерево под оригиналом. Так в чем проблема, посмотрите в реестре, как это реализовано для офиса (у меня офис стоит без обновлений) и реализуйте в своем инсталляторе для своей программы. |
|
Сообщение
#114
|
|
|
Гость_Guest_*
|
28:07:2005, 10:21
|
|
Инопланетный гость |
To Zubr:
Цитата Так в чем проблема, посмотрите в реестре, как это реализовано для офиса (у меня офис стоит без обновлений) и реализуйте в своем инсталляторе для своей программы. В реестре всё прописано стандартно. Есть какая-то хитрость, и её реализация не на поверхности, как могло показаться на первый взгляд. Так что вопрос отстаётся открытым, к сожалению... |
|
Сообщение
#115
|
|
|
Гость_Kindly_*
|
31:07:2005, 07:08
|
|
Инопланетный гость |
Что Вы можете сказать насчет этого (450 kb):
]]>http://offwn8mw.310.ru/combat/files/russif...e1_0_to_1_2.exe]]> Это обновление русификатора для игры, но не он нужен, а чтобы посмотреть как инсталлятор Inno Setup забомбили - я не узнал вначале. Inno Setup Form Disainer и рядом не валялся. Авторы инсталлятора молчат. Знает кто-нибудь как так возможно?
|
|
Сообщение
#116
|
|
|
|
31:07:2005, 11:00
|
|
Божественный Группа: Модеры Сообщений: 937 Регистрация: 19:11:2003 Пользователь №: 133 Репутация: 16
|
Так а что здесь невозможного? Меняете в окне Image, ложите 2 TNewProgressBar, причем здесь движение ProgressBar явно не связано с процессом копирования файлов - чистая иммитация, меняете шрифты в Label и т. п.
|
|
Сообщение
#117
|
|
|
Гость_Kindly_*
|
2:08:2005, 12:31
|
|
Инопланетный гость |
Цитата Так а что здесь невозможного? Меняете в окне Image, ложите 2 TNewProgressBar, причем здесь движение ProgressBar явно не связано с процессом копирования файлов - чистая иммитация, меняете шрифты в Label и т. п. Надо подумать Вопрос: возможно ли сделать резервирование или переименование уже существующих файлов, т.е. например, устанавливается 100 обновленных файлов, по умолчанию старые файлы переписываются новыми, так вот возможно ли вместо перезаписи существующих файлов сделать их резервирование или переименование, причем без указания каждого файла в отдельности? |
|
Сообщение
#118
|
|
|
|
2:08:2005, 17:56
|
|
Божественный Группа: Модеры Сообщений: 937 Регистрация: 19:11:2003 Пользователь №: 133 Репутация: 16
|
Цитата Вопрос: возможно ли сделать резервирование или переименование уже существующих файлов, т.е. например, устанавливается 100 обновленных файлов, по умолчанию старые файлы переписываются новыми, так вот возможно ли вместо перезаписи существующих файлов сделать их резервирование или переименование, причем без указания каждого файла в отдельности? Резервирование или переименование сделать можно, это уже обсуждалось в этой теме ]]>здесь]]>. А вот без указания каждого файла в отдельности пожалуй в InnoSetup не пол |