Скрипты Inno Setup. Помощь и советы [часть 4]
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме Inno Setup. Прочие вопросы. Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах: Inno Setup [все вопросы] часть 1 Inno Setup [все вопросы] часть 2 Скрипты Inno Setup. Помощь и советы [часть 3] Продолжение обсуждения Скрипты Inno Setup. Помощь и советы [часть 5] |
Добрый день! Столкнулся вот с такой проблемой:
Использую установщик на Inno Setup для приложения. Оно содержит исполняемый файл и прочие папки. Для их установки использую стандартный Install - тег Files, атрибуты Source, DestDir. И стандартный UnInstall. И он не удаляет подпапки в одной из папок. То есть папки с файлами удаляет, а в папках с файлами и вложенными папками удаляет только файлы, располагающиеся непосредственно в этой папке, а подпапки и файлы в них - не удаляет. Пробовал указать эту папку (которая содержит неудаляющиеся подпапки) в UninstallDelete - эту папку стал удалять, но перестал удалять все остальные - те, что поставил инсталлятор. Указывать вообще все в InstallDelete не могу, так как устанавливаемые файлы ставятся в зависимости от Task-ов, поэтому на момент удаления в лоб не узнать, надо удалять файл или нет - очень подходил способ, когда удалялись те файлы, которые были установлены, но тогда возникает неудаление подпапок. Может кто-нибудь знает, как можно настроить удаление в моем случае, спасибо. P.S. Inno Setup 5.1.4 (ISPP 5.1.2.0) |
Kizekil
Есть ответы на твои вопросы,очисть свои входящие сообщения,не принимает твой ящик.Очистишь отпишись.Пришлю сразу. |
Для Kizekil
№Как поменять цвет шрифта?Код можно?" |
Приветствую, существует рипаг Duke Nukem Forever (2011) [Action (Shooter) / 3D / 1st Person] Multi 2 / Rus {RePack от R.G.ReCoding}. В нём есть переработанная страница компонентов. Наведя курсор на любой из компонентов, в правом окне, появляется описание этого компонента. Мне очень нужен такой скрипт установки или код. Заранее благодарен.
|
Подскажите, а как в Innosetup зарегистрировать в windows своё расширение файла?
|
Подскажите, есть ли возможность убрать картинку WizModernSmallImage.bmp из инсталятора? Только не предлагайте закрасить её через фотошоп в цвет #ffffff, чтобы она была незаметна. И ещё вопрос, при выборе директории установки показывает только жесткие и съёмные диски, как можно туда добавить рабочий стол, отображение всех папок рабочего стола, библиотеки, сеть, папку пользователя. В общем нужно сделать также как и в Smart Install Maker.
|
У темы новый куратор - El Sanchez
Благодарим Serega за его огромный вклад и помощь в области Inno Setup. |
volk1234, спасибо ему)и вам(и всем админам в том числе) за отличный форум)
|
Поправлюсь, благодарить не в теме пожалуйста :)
Если хотите в РМ. ЗЫ: На таких людях как Serega держатся все хорошие начинания. Форум держится на пользователях, активных участниках и только в меньшей части на модераторах и администраторах (мы лишь обслуживаем его). |
Не в той теме задал вопрос, если есть возможность подскажите пожалуйста.
Цитата:
|
|
valyok666, спасибо огромнейшее. С картинкой проблем не было, а вот с деревом ошибки начали вылетать. В общем я отписал в скайп.
|
Доброго времени суток!
Подскажите пожалуйста как сделать обновление программы, если она уже установлена? Есть функция, что ни буть типа lastPos('by', str);, кторая возвращает позицию последнего вхождения соответствия в строку символа или писать ручками? P.S. Где то встречал тему, но никак не могу найти. Буду благодарен за подсказку. |
|
El Sanchez, спасибо!
Решил установить : Цитата:
|
Gugle, замени на PansiChar
|
Есть вот такой скрипт (отписывался в предыдущей теме). Я хочу добавить 2 кнопки (свернуть и закрыть) без использования ботвы.
Вот порылся в примерах и нашел это: Если его добавить в скрипт инстала получится это: Возникли 2 вопроса: 1. Как сделать прозрачным черную полосу (например через Transparent и тд.)? 2. Как: а) заменить кнопки на изображения (я думаю, вы уже поняли, что "_" и "Х" - это нижнее подчеркивание и икс)? б) или наложить текстуры? |
Цитата:
Цитата:
B) лучше через ботву, но можно написать скрипт текстуирования кнопок через бмп, на примере скрипта от Shegorat |
Цитата:
|
Цитата:
и это есть в справке. иногда полезно туда заглядывать |
|
Собстно есть код для конвертирования OGG, с полноценным прогресс-баром. А ктонить мог бы прикрутить к нему возможность, чтоб прогресс отображался не только в окне инсталлятора, но и на самой иконке инсталлятора, в панели задач (таскбаре)? Речь идет о Win7.
Собстно код: |
И ещё такой вопрос: есть ли у когонить код, реализующий возможность "вручную" передвигать прогресс-бар? Ну тоесть после распаковки файлов, у меня происходит 10 манипуляций с ними. Как сделать чтобы после каждой "манипуляции", полоска прогресс-бара увеличивалась?
P.S. Нужен не второй прогресс-бар, а чтоб все происходило в стандартном, после распаковки файлов. |
Цитата:
Пример: Действие WizardForm.ProgressGauge.Position:=10; Действие WizardForm.ProgressGauge.Position:=20; Действие WizardForm.ProgressGauge.Position:=30; ............................ Последняя позиция должна равнятся максимальному значению прогрессбара: WizardForm.ProgressGauge.Position:=WizardForm.ProgressGauge.Max; |
Лександер, А как его "задействовать"?
Когда указываю так, то ничего не работает. Прогресс-бар тупо сбрасывается "на ноль", и все. [Run] Filename: "{app}\binkmix.exe"; StatusMsg: "MyProgress1"; AfterInstall: MyProgress1; Filename: "{app}\binkmix.exe"; StatusMsg: "MyProgress2"; AfterInstall: MyProgress2; Filename: "{app}\binkmix.exe"; StatusMsg: "MyProgress3"; AfterInstall: MyProgress3; Filename: "{app}\binkmix.exe"; StatusMsg: "MyProgress4"; AfterInstall: MyProgress4; [C0de] procedure MyProgress1; begin WizardForm.ProgressGauge.Position:=10 end; procedure MyProgress2; begin WizardForm.ProgressGauge.Position:=20 end; procedure MyProgress3; begin WizardForm.ProgressGauge.Position:=30 end; procedure MyProgress4; begin WizardForm.ProgressGauge.Position:=40 end; |
Raf-9600, а ты точно тот прогресс бар указываешь? Всмысле у тебя не кастомный он?
|
Всем добрый день!У меня такая проблема:
Я задаю в скрипте isdone я задаю для распаковки precomp'a файл cas_01.cas а он распаковывает data1 без расширения Вот скрипт, если че можете кто нибудь поправить http://rghost.ru/27751441 |
Цитата:
Да и кто-то писал на форуме, что при дизассемблировании установочного файла на основе Inno, часть кода теряется. |
народ а кто поможет прикрутить эти компоненты, к этому скрипту http://rghost.ru/27770621
Код:
[Languages] |
И что нужно прописать в скрипте чтоб когда запускался setup.exe выводилось сообщение о том что такая программа уже есть и предлагалось удалить программу?
|
LinkOFF, думаем головой и лезем в справку от Krinkels.
|
Цитата:
|
LinkOFF значит ты папку запаковал а не сам файл
|
Цитата:
insombia, можешь скрипт посмотреть http://rghost.ru/27751441 |
Цитата:
|
LinkOFF,
|
valyok666 у него так и указано там просто у него указано даже cas_01.cas и так далее которое кажись указывать не нужно
LinkOFF попробуй указать так |
я создавал precomp'ом 0.4.2 а в isdone 0.4. precomp 0.4 сможет распаковать архив сделанный 0.4.2?
|
insombia, так он хочет выходной файл без папки или с папкой?
|
Цитата:
а есть isdone с precomp'ом 0.4.2? |
|
Цитата:
простым 0.4 он говорил типа архив не был создан precomp'ом 0.4 я скачал IsDone_0.5f и попробовал там и у меня получилось, а в моем скрипте не идет |
LinkOFF,
сам не можешь обновить свой скрипт? |
|
LinkOFF,
дай скрипт. я обновлю |
ARS_23, если можешь то соедени пожалуйста, буду искренне благодарен http://rghost.ru/27780851
|
LinkOFF,
как сделаю-кину в лс ссылку |
|
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
Скажите пожалуйста, можно как нить проверить окно "родилось" или нет? Что то типа: Код:
[_code] |
Цитата:
|
народ как сделать такие компоненты?(скрипт на 4 странице по-мойму)
http://fastpic.ru/view/30/2011/0905/...5caa8.jpg.html |
Tixo Inno DescCtrl v1.0
|
Цитата:
Цитата:
|
Инсталлятор может после установки сам себя скопировать? Данный код не работает:
Код:
FileCopy(ExpandConstant('{srcexe}'), 'C:\Test\test.exe', False); Код:
Filename: {sys}\cmd.exe; Parameters: "copy ""C:\In\test.exe"" ""C:\To\test.exe"""; Flags: shellexec runascurrentuser nowait Но это к слову, т.к. путь ещё нужно передать, не приходилось этого делать. Танцы с бубном (.bat) не хочется использовать, кто знает, какая система защиты у пользователя стоит, может отдельно запросить разрешение на запуск батника, а это совершенно лишнее. |
Доброго времени суток!
1. Подскажите как при использовании SHFileOperation.iss функции CopyDir показать ProgressBar в котором бы отображался процесс? 2. Можно как нибуть не только скопировать файлы, но и упаковать ее в архив? |
|
kindza811, никто тебе его не даст)делай сам)
там вроде рисованые картинки,ну остальное всё ботва) |
Как принудительно кинуть установщик на страницу "Финиш"?
Так, что бы после этого скрипт завершил свою работу при любом варианте. Можно как нибуть получить список файлов и папок в указанной папке? З.Ы. 2 предыдущих вопроса все еще актуальны. |
Gugle, когда именно надо кинуть установщик на финиш?
|
Всем доброго времени суток! У меня есть скрипт с наложением изображения на кнопки. Как можно сделать, чтобы у кнопки "Обзор" было отдельное изображение (например, button2.bmp)? Видел несколько примеров, но одни не работают, а другие - заменяют текстуры на всех кнопках :(
|
Sotonisto, накладывать, а не налаживать. Это не от слова лажа, а от слова класть! :read:
Скачать переделанное. Если надо, то текст убери с кнопки "Обзор..." коммандой: Код:
[Messages] Всё для Вас. :) |
Rikill, спасибо :)
Цитата:
Но впредь буду более внимательным. |
у кого имеются Ukrainian.isl
|
VASYAKRN у меня
|
insombia, У меня уже есть
спасиба |
Ошибки при установке inno setup'ом
Есть небольшое приложение, и созданый под него инсталятор. Должно все устанавливаться в IIS7. Раньше работала с IIS6, проблем не возникало а теперь пишет вот это
Код:
C:\DOCUME~1\9335~1\LOCALS~1\Temp\2\is-GJ8K0.tmp>powershell -command "Set-Executi onPolicy RemoteSigned -Scope CurrentUser" Все ошибки гуглила, не особо помогает. Может быть кто сталкивался? Если что скрипт вшитый в установочник: Код:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -sn W3SVC/ |
VASYAKRN,
Цитата:
|
valyok666, Спасиба
|
Цитата:
Цитата:
З.Ы.С кириллицей в пути не сработает. |
1. Как осуществить разбивку .arc архива на диски (игра, сжатая FreeArc'ом весит ~9.5Gb)?
Хотелось бы разместить, например, 2 архива на 2 DVD и чтобы после окончания распаковки 1 архива, выводилось сообщение "Вставьте диск 2" и т.п. Нашел такой пример, но не особо понял что делать (у меня требует 2й диск даже не начав установку). Код:
if not ShowChangeDiskWindow('Пожалуйста, вставьте диск 2 и дождитесь его инициализации.', ExpandConstant('{src}'),'CODMW2_Disk2.arc' ) then break; После окончания распаковки афхива инсталл просто закрывается (нет ни финишной страницы, ни инсталляции доп. по) :( |
Цитата:
|
Alim13, :o
Sotonisto, для чего нужен records.inf посмотри в справке к ISDone. Код:
if not ISArcExtract ( 0, 0, ExpandConstant('{src}\1 архив.arc'), ExpandConstant('{app}'), '', false, '', '', '', notPCFonFLY) then break; |
Цитата:
в юникоде выглядит так: Код:
function CopyFile(ExistingFile,NewFile: String; bFailIfExists: Boolean): Boolean; |
serg aka lain, Внимательней посмотри мой пример.
Про то, что инно не перенаправляет это дело автоматом, уже научен неприятным опытом :) |
Цитата:
Код:
function CopyFile(ExistingFile,NewFile: String; bFailIfExists: Boolean): Boolean; |
Rikill, спасибо :) Немного изменил твой пример и все получилось ^^
Но появилась другая проблема: прогресс-бар доходит до конца еще во время распаковки 1-го архива :( + у меня прогресс показан %, так вот, после распаковки 3х архивов отображается 300% :( Как это исправить? Вот скрипт инсталла. |
Sotonisto, а вот теперь про records.inf. После "пробной" распаковки архивов ты наверное заметил этот файл в папке.
Для активации введи в начале скрипта #define records и перекомпилируй. Вуаля, проценты и прогресс бар не шутят. Если будешь подсовывать другие архивы то закомментируй просто #define records и переустанови "пробный" раз игру. Т.е. перераспакуй все архивы. P.S. Пример был из справки... |
Всем привет!)
Подскажите как прикрутить свой (которого Не у кого нет) шрифт у инсаталлятор? Есть пример? Заранее спасибо.! |
ntrx, к сожалению использование этого кода приводит в неправильному запуску инсталлятора. Проси у Shegorat правильную библиотеку для вывода шрифта, мне он её не даёт.
P. S. Возможно придётся раскошелиться... |
Цитата:
... оставляем рабочим вариант уважаемого serg aka lain. оказалось, что инно не знает, что такое PWideChar. так что для юникода, применяем String. |
Цитата:
После инициализации своих окон в процедуре Код:
PROCEDURE InitializeWizard; Проверка делается функцией взятой отсюда. Если ПО установлено, то сравниваются версия, которая ставится (V1) и версия, которая установлена (V2). Если V1 <= V2 то пользователю задается вопрос, хочет ли он продолжить и при отрицательном ответе надо отправить пользователя на страницу "Финиш". З.Ы. А прочитать список файлов в папке как нить можно? |
|
Здравствуйте, помогите плиз. Я полный нуб в этой проге и 1 день пытаюсь в ней чтото сделать.
~2 часа себе мозг выносил к прикручиванию 7zip к моему шаблону, но так и не получилось. Прикрутите плиз к моему шаблону (http://www.mediafire.com/?rcy26qqpktx7nva), напишите как архивы кидать в инсталлер (чтобы они распаковывались от инсталлера, но были отдельным файлом). И еще вопрос как сделать (а лучше это тоже прикрутить к шаблону) чтобы если пользователь выбирает существующую папку, то все файлы в этой папки перемещались в *эта папка*\backup. Если подобный вопрос уже был, сорьте, я убъюсь если буду читать ~400 страниц в 3 темах. |
Цитата:
Цитата:
|
Цитата:
|
создание диалогового окна inno Setup
Необходимо создать новое диалоговое окно,которое будет спрашивать: на какой сервер ставить программу, сервер базы данных, логин и пароль для доступа к серверу базы данных. все эти переменные необходимо записать в нужном месте. Я первый раз работаю с Inno setupом,подскажите как это сделать,пожалуйста
|
Цитата:
Спс Такгда еще 2 вопроса 1 как сделать чтобы инсталлятор бился на несколько частей? 2 файлы запакованные в инсталлятор в exe тоже хранятся, или в отдельных архивах? Я немного не понял тот скрипт (а точнее почти полностью не понял) А также вообще не понял как бекап прикрутить к скрипту, который я использую. Единственное что я понял (хотя могу ошибаться) он делает бекап, но не удаляет файлы в папке. А мне нужно чтобы в папке куда пользователь указал устанавливать все файлы удалялись, перед этим бекапясь. |
krutx, пример для разбивки на DVD 4.3 гб
Код:
[Setup] подскажите код, для замены страници приветсвия на фото и добовление прозрачности (для Вин 7) с кликабельным логотипом слева-внизу |
aXmeD, поточнее изложи что надо)
|
valyok666, вот http://imageshack.us/photo/my-images...11ecfcb9b.jpg/
видите прозрачность и лого, вот оно нужно, чёб можно было жмакать на лого и вместо экрана приветствия с текстом была фотография |
aXmeD, вы пишите по русски=)
Вот лого W1n7 |
Еще вопрос появился: как делать проверку процесара (в системных стребованиях) 2х и болие ядерных?
#define Processor "3000" тут указывается частота процессора, и я так понимаю только для 1 ядра. |
krutx, библиотека вроде бы на это не способна.
|
krutx,
isUtils.dll v1.00 [18.08.2010] от ExpeditorR Библиотека для проверки системных требований. Ключевой особенностью isUtils.dll является то, что вы может написав всего пару-тройку строчек кода выводить всю информацию прямо в окно Inno Setup, при этом возможно использование любых цветов, размеров и шрифтов и всё это займёт всего 4-5 строк кода. Ну, и конечно же имеются функции для ручного вывода и проверки системных требований. В архиве имеется файл Readme.rtf с подробным описанием всех функций, а так же два примера - автоматической и ручной проверки. HWREQ v 1.11 от Shegorat [20.03.2011] HWREQ - Модуль системных требований для Inno Setup. Создает страницу системных требований, при этом вам потребуется прописать всего несколько функций. В архиве есть несколько примеров использования. Список изменений: Относительно v.1.0: Полностью переписан скрипт. Теперь не нужна библиотека get_hw_caps.dll |
Доброго времени суток!
Необходим пример чтения xml файла. Объяснюсь. Я видел пример, как писать и/или заменять данные в xml, но никак не могу разобраться, как можно пробежаться по дереву и вытащить необходимые данные. Пример xml: Что понятно. Что хочется. 1. Вытащить список елементов. После метода xmlParser.getElementsByTagName('element_12'); получить список имен элементов входящих в "element_12". Т.е. element_121 element_122 element_123 Метод, который бы это сделал я не нашел. 2. Вытащить список атрибутов. Т.е. я получил список элементов по имени с помощью метода xmlParser.getElementsByTagName('element_122');, если использовать xml выше, то элемент будет один, но возможно их будет и несколько, а потом получить список attr1 attr2 attr3 Опять таки я не понимаю, как вытащить названия самих атрибутов. При переборе названий хотелось бы иметь метод получения значение атрибута. Его я то же не смог найти. |
Цитата:
|
Подскажите пожалуйста что нужно прописать в скрипте чтоб распаковывались зашифрованные архивы(пароль).Скрипт Isdone
|
LinkOFF, Какие именно архивы??? Если *.arc то здесь пароль пиши, если не ошибаюсь:
if not ISArcExtract ( 0, 0, ExpandConstant('{src}\arc.arc'), ExpandConstant('{app}\'), '', false, 'Твой пароль', ExpandConstant('{tmp}\arc.ini'), ExpandConstant('{app}\'), notPCFonFLY{PCFonFLY}) then break; |
Цитата:
|
Цитата:
|
Gugle, он глупость сказал.
|
Rikill, +1 Gugle, спрашивает как средствами инно вытащить их, а не notepad
|
|
krutx, а форум чему посвящён по-твоему?
|
Цитата:
|
krutx, ну а если надо во время установки это сделать?так что харе флуд разводить
|
Цитата:
Парсер будет сильно зависеть от самого xml, нужные ноды могут быть где угодно в иерархии, с/без аттрибутами. Для данного примера скрипт может быть такой: Код:
... |
|
Devils Night, попробуй в конце строчек добавить это:
Код:
Permissions: full |
Цитата:
|
друзья! подскажите пожалуйста что значит в секции Files флаг Flags: ignoreversion gacinstall
ну ignoreversion понятно, а вот что такое gacinstall? для чего это надо и в каких случаях может знает кто |
У меня такой вопрос что нужно написать в скрипте чтобы...
Он устанавливал дополнительные программы перед установкой главной программы.. Ну что то типо: запустил Setup.exe; Нажал далее выбрал директорию типо началась установка, но сначала вылетело окно с directx установкой... (типо установите сначала это).. |
как сделать сильное сжатие (используя только инно)
у меня в скрипте параметры сжатия Код:
Compression=lzma2/ultra64 |
krutx, ну всё. Максимум.
derfyt , почему бы не сделать установку direct x обязательной после установки программы? С помощью секции [run]? |
вот мой скрипт переделанный valyok666 может кому надо готовый скрипт для CODMW3
http://rghost.ru/29571811 |
insombia,
В секции [*run] измени на это ------------------------- Check: CheckError and SoftCheck Не будет окон ошибок установки DirectX VC++ и т.д ------------------------- И кнопку далее на странице SelectDirPage преименуй на "Установить" а то юзверь будет думать, что имеется еще какойнить шаг перед установкой. ------------------------- |
Ну а может ктонибудь в мой скрипт вписать использование прекомп и создание бекапа (с удалением всех файлов из папки установки)
|
krutx,
В справке ISDon'а все подробно расписано. Бекап то для чего? |
Цитата:
|
VASYAKRN,пожалуйста, удали мой скрипт с твоего сайта, я буду очень благодарен. Если же ты не удалишь, то мне придётся написать в тех. поддержку ucoz.ru. Твой сайт удалят, а тебя же забанят по физическому адресу.
P.S. Цитата: Друзья сайта oszone.ru и ruboard.ru не соглашались быть партнёрами твоего сайта, ты нарушаешь этим правила. |
insombia, Хорошо
|
Что нужно прописать в скрипте чтоб удалялись папки с файлами?
|
Цитата:
Код:
[UninstallDelete] |
Цитата:
|
LinkOFF, хм... тогда может так???
Код:
[InstallDelete] |
Цитата:
А через [code] как нибудь можно.У меня скрипт ISDone, я использую PackZIP и после упаковки папки в архив папка не удаляется |
Цитата:
Код:
if not ISPackZIP ( 0, 0, ExpandConstant('{app}\1a1\*'), ExpandConstant('{app}\1a1.pak'), 2, true ) then break; |
LinkOFF,
[UninstallDelete] Name: {app}\*.*; Type: filesandordirs // маска Type: filesandordirs; Name: {app} |
Здравствуйте, я изучаю инно сетап 2 день и мне нужна помощь, я использую модуль IsDone 0.5 final для распаковки архива 7з который лежит рядом с установочным файлом. Вопрос заключается в следующем: как можно сделать так, чтобы распаковка тех или иных архивов зависела от выбора компонентов, иными словами как засунуть архив в компонент без секции [Files], то есть например если я не поставлю галочку на "Основные файлы" то архив не будет извлекаться.
В справке вроде описано как подключить файлы в компоненты с помощью секции [Files], например: [Components] name: "RevEmu"; Description: "Эмулятор для игры по сети"; [Files] Source: "C:\Project\repacks\rev_emu\*"; Components: RevEmu; DestDir: "{app}\"; Flags: external recursesubdirs skipifsourcedoesntexist а мне надо без этого(без указания архива в секции файлов), мне надо чтобы архив который лежит рядом с установщиком распаковывался только когда отмечен нужный компонент, даже если он не прописан в секции файлов. Благодарю за внимание. |
Доброго времени)кто подскажет код добавления иконок папок через ботву?
|
FolDer98, там есть примеры как подгрузить картинку. Иконка папки это и есть картинка. Просто стандарт прячешь, потом суёшь туда картинку.
Belial4444, Код:
[Components] |
Rikill, спасибо но мне не помогло, наверное что-то я не так делаю:
Код:
[Кусок секции компонентов] |
Ктонить может написать скрипт, который бы при распаковке файлов, если обнаруживает в устанавливаемой папке, файл с тем же именем и расширением что сейчас должен распаковаться, то сначала проверил CRC32 файла в папке, и если он совпал с тем CRC32 что я задал для этого файла, файл бы не распаковывался?
|
Доброго времени суток!
В секции [Files] прописана папка с файлами, которую надо инсталить: Код:
[Files] {app}\MyFolder.0\ {app}\MyFolder.1\ {app}\MyFolder.2\ ... {app}\MyFolder.N\ Можно как нибуть в секции files указать число папок, в которые надо проинсталить, а не писать свою функцию? Мне надо сохранить флаги при установке. Например, если папка такая есть и в ней есть этот файл, то проверить версии и заменить только, если у пользователя стоит младшая версия файла. |
Вложений: 1
Добрый вечер)как сделать такие чекбоксы без ботвы
|
Цитата:
|
В данном случае было использовано
Цитата:
:) |
El Sanchez, а можно пример "хука на событие установки"? А то интересно, блин. :)
|
а примера нет?просто токо учусь в основном всё копипастой
|
Rikill, +1 тоже заитересовало)кстати вроде бы пример был у рестулз или я ошибаюсь?
|
Люди добрые тыкните чайника с путь истинный !!!! Что нужно сделать чтобы Inno Setup создала Setup.exe + 1.bin + 2.bin и т.д Как образом это делается ??? Как разбивать на части в виде bin файлов ?? Надо в скрипт добавлять чего то или как ?? Только не ссылки подскажите как сделать !
|
MadTweest, Открываеш InnoSetup, нажимаеш на клавиатуре F1, в появившейся справке вбиваеш в поиске слово [Setup], получаеш список параметров этой секции. там есть все, что тебе нужно.
Цитата:
Цитата:
|
MadTweest
DiskSpanning=true SlicesPerDisk=4 DiskSliceSize=10000000 |
Как в BeforeInstall прописать выполнение двух функций? В справке сказано что это возможно через запятую, но когда я пишу так:
Код:
BeforeInstall: CreateBackup, ChangeCaption('Распаковка файлов монологов...') |
Цитата:
Цитата:
|
Цитата:
Код:
...BeforeInstall: SpecF |
Всем привет. Как вставить видео в инсталлятор?
|
Цитата:
|
kindza811, этой библиотекой ещё можно. Довольно-таки удобно.
|
Здравствуйте,
Задача: Мне нужно запустить инсталлер, он делает свои преинсталл действия, потом ребут и должен заново вызвать себя, чтобы продолжить. Пишу в реестр данной строчкой: RegWriteStringValue(HKCU,'Software\Microsoft\Windows\CurrentVersion\RunOnce','Boban Installer', '{src}\{#archname}.exe'); Конечно же, параметр записывается как строка, а мне ,естественно, нужно получить путь от {src}. Как этого достичь? |
Rikill, норм библиотека от Vintage)
|
Ктонить может написать скрипт, который бы при нахождении в устанавливаемой папке, файла с тем же именем что и у файла который сейчас должен распаковаться, сверял бы количество байт файла в папке, с количеством байт, которое я задал для этого файла, и если значения совпадают, то файл бы не распаковывался?
P.S. Собстно такой код нужен для использования с улучшенным деинсталлятором UninsHs, чтобы когда пользователь выбрал в нем "Изменить" или "Восстановить", то не перезаписывались все файлы, а только измененные. upd А реально ли в этом коде сделать так, чтоб выбрав компонент под номером 3, у компонента под номером 5, менялось описание? |
leshcat, ExpandConstant
Код:
RegWriteStringValue(HKCU,'Software\Microsoft\Windows\CurrentVersion\RunOnce','Boban Installer', ExpandConstant('{src}\{#archname}.exe')); |
Возникла необходимость решения следующей задачи - необходимо получить индекс checkbox'а в списке компонентов по имени компонента (не описанию, т.к. описание "Для всех форматов" используется и в других компонентах) - у кого-нибудь имеются наработки в этом направлении?
Цитата:
|
XXXler, посмотрите пример из ботвы BtnGroup.iss там токо кнопки вместо чекбоксов))
|
Цитата:
|
XXXler, ну я просто хотел помочь=)
|
R.i.m.s.k.y.,
Большое спасибо, проработала точно как надо :) Еще вопрос... как тосле этого подать команду на рестарт? Хотел реализовать через shellexec с помощью виндовского 'shutdown /r'. |
leshcat,
[setup] AlwaysRestart=yes |
Rikill,
Нет, это не то, нужна команда shellexec или exec |
Цитата:
|
Цитата:
Цитата:
Пример кода отрисовки кастомного чекбокса. Реализовал 12 состояний. В качестве изображения для чекбокса взял btnimage.bmp из примеров Restools. upd Доработал еще 9 состояний чекбокса |
Цитата:
|
Цитата:
Код:
[Run] |
Цитата:
пример из батника брал, там не каких exe не было, в оригинале вообще вот так было Код:
shutdown -r -t 1 -c |
Всех приветствую.
Ищу варианты решения одной задачки, по этому решил задать вопросы здесь. Интересует создание инсталлятора программы FlylinkDC++ для локальной сети, а в частности, сможет-ли движок Inno Setup проделать такой финт: 1. показать пользователю поле ввода для ника; 2. отобразить выпадающий список с ip адресами сетевых интерфейсов, существующих на данный момент в системе; 3. по результатам пользовательского ввода модифицировать файл настроек Flylink'а. Самому писать инсталлятор пока лень, чувствую будет изобретён очередной велосипед, но и при беглом взгляде на возможности данного инсталлятора такого функционала сразу не нашёл, по этому спрашиваю у знающих людей... |
|
Спасибо.
Реестр мне не подходит по определённым причинам. Интересует возможность модификации файла настроек DCPlusPlus.xml во время установки. |
|
Извиняюсь за глупые вопросы, времени нехватает на вдумчивое чтение доков по Inno, но функции, вроде DeleteIniEntry являются API вызовами или это скриптовые обёртки? Если это Native API, то можно извратиться в моём случае и воспользоваться MSXML для доступа к данным DCPlusPlus.xml. Но это изврат получается )).
В итоге если хорошо подумать, то остаётся единственный вариант, написать программку, которая делает замену строк по шаблонам и вызывать её с аргументами - строками для замены (ник, ip, каталог), а после установки удалять её, что-бы не искушала пользователей. Так же сделать и при получении списка ip-адресов из системы (я надеюсь Inno Setup позволяет получать вывод вызываемых программ или ошибаюсь?). |
Вложений: 1
OxFFEEDD,
вот тебе, старче, скрипты инно для работы с XML |
Универсальная библиотечка... спасибо. Теперь есть точка опоры, с которой можно начинать!
Осталось реализовать задуманное. Всем удачи! PS Кстати, если особо не заморачиваться на формате xml, то можно в файле настроек, предварительно прописав строковые шаблоны типа %nick%, %ip%, %dowload_dir% в соотв. теги, заменить шаблоны на значения, полученные от пользователя с помощью функции StringChangeEx, как вариант. |
|
Devils Night,
Код:
function KillTasks(ExeFileName: string): Integer; |
Всем Здрасте. Кто может поделиться скриптом для который используеться в этом уроке http://rutracker.org/forum/viewtopic.php?t=2729289 или вобщем скрипт с поддержкой вставки изображения, музыки и разархивации FreeArc для версии 5
|
Здравствуйте, у меня новая проблема появилась, надеюсь Вы подскажите. Суть проблемы: у меня 2 компонента в установке, первый это файлы игры, 2 это эмулятор для игры, файлы игры запиханы в архив 7з, который лежит рядом с установщиком и извлекается если отмечен 1 компонент, проблема заключается в том, что эмулятор из 2 компонента устанавливается до того, как разархивируются файлы игры, думаю это происходит так потому что инно сетап считает 1 компонент пустым так как там к нему не подключены файлы через секцию [Files] , а просто есть команда на распаковку архива, то есть инно сетап обрабатывает 1 компонент, считает его пустым и распаковывает 2 компонент, а мне нужно чтобы распаковывал только когда извлечется архив. Спасибо за внимание.
|
Belial4444,
я много читать, и думать и мой моск сломать об клавиатура читай твой сообщения если ты пожалуйста положить скрипт может быть я смогу знать где есть ошибка |
R.i.m.s.k.y, старался писать понятно, не получилось)
Короче по порядку. Есть два компонента: [Components] Name: "GameCore"; Description: "Файлы игры"; ExtraDiskSpaceRequired: 17287243366 Name: "RevEmu"; Description: "Эмулятор для игры по сети"; По описанию понятно что есть что), мне нужно чтобы после установки первого компонента устанавливался второй. В первом компоненте у меня идет распаковка архива формата 7z: [code] Код:
const |
Belial4444,
c исданом не работал, но думаю трабла в том что на шаге CurStep=ssInstall инсталлер отдает на распаковку архив, а сам переходит к CurStep=ssDone где распаковывает эмулятор |
Что делать с этой частью скрипта??? Выбивает тут ошибка. как поменять на свою версию. версия: 5,4,2(u)
type #ifdef UNICODE ; если у вас ошибка на этой строке, то установите препроцессор или исправьте скрипт для вашей версии Inno Setup #define A "W" #else #define A "A" ; точка входа в SetWindowText, {#A} меняется на A или W в зависимости от версии PAnsiChar = PChar; // Required for Inno Setup 5.3.0 and higher. (требуется для Inno Setup версии 5.3.0 и ниже) #endif #if Ver < 84018176 AnsiString = String; // There is no need for this line in Inno Setup 5.2.4 and above (для Inno Setup версий 5.2.4 и выше эта строка не нужна) #endif |
Что делать с этой частью скрипта??? Выбивает тут ошибка. как поменять на свою версию. версия: 5,4,2(u)
type #ifdef UNICODE ; если у вас ошибка на этой строке, то установите препроцессор или исправьте скрипт для вашей версии Inno Setup #define A "W" #else #define A "A" ; точка входа в SetWindowText, {#A} меняется на A или W в зависимости от версии PAnsiChar = PChar; // Required for Inno Setup 5.3.0 and higher. (требуется для Inno Setup версии 5.3.0 и ниже) #endif #if Ver < 84018176 AnsiString = String; // There is no need for this line in Inno Setup 5.2.4 and above (для Inno Setup версий 5.2.4 и выше эта строка не нужна) #endif |
Кто-нибудь может достать либо сделать скрипт, как ТУТ (см. в спойлере "Скриншоты инсталляторов") ???
|
Что делать с этой ошибкой??
Изображение удалено модератором. Нарушение ОПК 3.9 |
PAnsiChar = PChar; // Required for Inno Setup 5.3.0 and higher. (требуется для Inno Setup версии 5.3.0 и ниже)
AnsiString = String; // There is no need for this line in Inno Setup 5.2.4 and above (для Inno Setup версий 5.2.4 и выше эта строка не нужна) ненужны |
Кто-нибудь может достать либо сделать скрипт, как ТУТ (см. в спойлере "Скриншоты инсталляторов") ???
|
Написано-же - отсутствует ; в конце строкм.
|
Как тут поставить свой размер??? http://radikal.ua/data/upload/0fccf/...00fa557703.jpg
|
Как тут поставить свой размер???
Изображение удалено модератором. Нарушение ОПК 3.9 |
ZverBY,
Цитата:
|
Вот
Изображение удалено модератором. Aplle внимательно читаем правила концеренции, особенно пункт 3.9 Цитата:
|
|
|
Aplle, duplicat тоесть у тебя уже есть эта строчка удали или закомментируй эту
|
а как закоментировать можно?
|
Aplle, // поставь перед строчкой
|
Aplle вот место на диске
|
извините за глупый вопрос
но как сделать так чтобы после установи инсталятор предложил перейти на сайт автора всю голову уже сломал |
kenny_danger, прописываешь в секцию [Run]
Filename: "http://www.oszone.net"; Description: "Форум для продвинутых"; Flags: postinstall shellexec skipifsilent R.i.m.s.k.y, что мне сделать тогда предлагаешь?:) Да кстати есть ещё проблемка, при указании директории установки к ней дописывается последняя папка, приведу пример, по дефолту папка установки C:\Valve\Left4Dead2\ , хочу установить в C:\Valve2\Left4Dead2\ выбираю эту папку а у меня пишется C:\Valve2\Left4Dead2\Left4Dead2 подскажите пожалуйста как избавиться от этого бага, в NSIS такой баг лечился добавлением "\" в конце дефолтной папки, но я я так и делал а баг все равно возникает |
Belial4444, про исдоне я тебе ничего конкретно не скажу, извини
если мое предположение верно я бы попробовал функции распаковки не раскидывать по двум CurStep'ам, а в одной CurStep=ssInstall собрать а про дубли в пути если это стандартными средствами - попробуй в секции Setup у параметра DefaultDirName={pf}\Left4Dead2 удали хвост Left4Dead2 Код:
[Setup] |
R.i.m.s.k.y, попробовал сейчас как ты сказал, все так же, теперь приписывает в конце Program Files :)
|
Belial4444, DefaultDirName=\valve\{#MyAppName}
|
Belial4444,
[Setup] DefaultDirName=\ или вообще параметр оставь пустым |
valyok666, попробовал баг остался)
Код:
#define MyAppName "Left4Dead2" Попробовал DefaultDirName=\ кгдазаупскаю путь по дефолту ставится C:\, а когда любую папку выбираю к ней дописывается \Новая папка 0_0 Сейчас просто пустой попробую.. С пустым параметром путь по умолчанию пуст, но все равно приписывается \новая папка , что делать?)) |
Belial4444, замени его DefaultDirName=\valve\{#MyAppName}
{pf} убери |
Belial4444, в общем истина где-то рядом
комбинируй :) |
Belial4444, всё понял сам описался)
|
у меня вопрос не такой простой как с папками
подскажите, пожалуйста, как узнать запущено ли программа у пользователя или нет не используя WMI вопрос со звездочкой - исдоне для этого использует WMI или нет? я бы и сам попробовал, но не могу воспроизвести проблему с крашащимися WMI-запросами инсталлера, у меня все робит Ошибка инсталлера - SWbemSecurity: Generic Failure |
Belial4444,
[Setup] AppendDefaultDirName=False |
kenny_danger,спасибо большое! Ты меня просто спас :) Может ты знаешь ответ и на мой вопрос про исдан?
|
Belial4444, к сожалению не знаю)
|
Ладно спасибо), если разберусь напишу как)
|
Можно ли и что прописать в скрипте, чтобы у скомпилированного приложения в папке Output была не стандартная, а нужная мне иконка, к примеру иконка exe-файла из {app}?
|
BigBoo,
Код:
[Setup] |
Цитата:
Цитата:
Цитата:
|
Цитата:
|
Цитата:
Куски скрипта Код:
function IsProcessRunning(FileName: String): Boolean; |
Цитата:
|
Кто-нибудь может сделать скрипт с вот таким оформлением:
Скрывайте пожалуйста большие сообщения тегом [more] |
ZverBYи зачем он тебе?придумай что-то свое
p.s.Скрипт есть у самой группы |
ZverBY, insombia, это группа делает практически тоже самое что и R.G Catalyst
|
Гражданин\Господин Aplle !
Изображения таких больших размеров выкладывать в форуме запрещено. Используйте иконки как в последнем своем сообщении. "Романенко! Фу-фу-фу!" (С) |
Цитата:
|
ZverBY,
Скрипт простенький написать не составит труда.) |
что нужно добавить в скрипт чтоб программа при инсталляции добавлялась в службу windows ?
|
Цитата:
DisplayName - имя отображаемое Start - тип запуска ImagePath - путь |
insombia, valyok666, Vista-w, автор этого скрипта не хочет делиться !!! А я сам не знаю как его сделать, могу только отредактировать под себя !!!
|
ZverBY, значит сиди и делай сам, потому, что никто ссориться с авторами не хочет.
|
Rikill, +1 ZverBY, есть закос по R.G Catalyst скрипт похожий просто уменьшаешь окно и ещё помелочам вот и всё
|
Люди подскажите пожалуйста куда прописывать пароль от архива freearc в скрипте isdone 0.6f
|
|
MarkusEVO, ты ошибку хоть переводил?тебе места не хватает
|
valyok666, Конечно переводил. У меня свободно на жестком очень много! Незнаю в чем проблема этой сранной ошибки...
|
На жёстком свободно 600 Гб
|
MarkusEVO
Код:
[Setup] |
|
MarkusEVO, если бы я щаз сидел дома на модеме я бы тебя проклял за такие скрины! :)
1) копируй само сообщение об ошибке мало кто знает, но если в виндовом окне ошибки нажать CTRL+C то скопируется текст этого окна! ну и соответсвенно этот текст можно вставить в форум 2) если религия разрешает только принтскринить то пользуйся ALT+PrintScreen - в буфер попадет активное окно, а не весь монитор с кактусами по ошибке - убери //max, я думал ты поймешь что этот камент означает максимальный размер = 2100000000 Код:
[Setup] |
|
Всё заработало! Убрал не нужное....
Код:
[Setup] Ты н ругайся я еще в этом чайнк имею дела с этой прогой всего лишь неделю :) |
MarkusEVO
1) Я не ругаюсь, просто хотелось бы чтобы люди читали справку перед задаванием вопросов в шапке темы есть русская справка по инно, староватая но сгодится 2) Старайся писать просто и грамотно, не бойся знаков препинания, это помогает тебя понять. 3) Дави "полезное сообщение" если сообщение помогло :) спасибо за внимание! |
Народ подскажите как можно сделать, чтобы при нажатие "У Вас 64bit Система" потемнела строка "У Вас 32bit Система" и была не доступна и наоборот!?
Вот скрин на мой Инстал: R.i.m.s.k.y., друг я сразу же нажал на полезное сообщение :yahoo: Спасибо тебе еще раз! Может и в этом сообщение поможешь, тогда точно будет царить в этом мире счастье :bow: |
MarkusEVO, по сабжу - для систем х64 надо ставить и х32 компоненты тоже, так что х32 компоненты засвечивать в системах х64 не нужно
а так есть системная функция IsWin64 - возвращает True если инсталлер запущен под виндой х64 более детально нужен кусок кода который рисует это окно но с кодовым оформлением я не помощник, я его не знаю и вообще пустая трата времени |
Ну вобщем вот код отвечающий з эту страничку в инстале:
Код:
////////////////////// SelectTasksPade ////////////////////// и если нажать не создавать получается, что кнопка обзор и строка пути, она темнеет и становится не доступной: |
MarkusEVO,
ну не обещаю что сработает советую проверить на вин32 и вин64 а про обзор ничего не скажу, ну не знаю я оформление инно, и прекрасно себя чуйствую Код:
////////////////////// SelectTasksPade ////////////////////// |
R.i.m.s.k.y., то есть ты сделал так, чтобы автоматически скрывалась?
Сейчас проверим! R.i.m.s.k.y., всё осталось как и прежне. |
MarkusEVO, значит венда х64
я ж выше написал что для вин-х64 надо ставить и х32 компоненты тоже я поставил просто проверку на вин64, вот и все, лейблы не скрываются, а не_создаются, это две разные разницы если хочешь сделать неправильно Код:
if (not IsWin64) then begin |
R.i.m.s.k.y., ладно не буду тебя мучить, может кто другой поможет! Всё равно спасибо тебе. А вот код страницы про создание папки в меню Пуск: Код:
////////////////////// SelectProgramGroupPage ////////////////////// |
MarkusEVO, там, такто, не в создании, там на клик выключенное состояние вешается. в твоем случае, все строчки, на которые ругнется таким-же образом - нужно обрамлять в то-же условие:
Код:
if (not IsWin64) then |
подскажите как чтоб после установки была кнопочка "Начать игру" рядом с "Завершить".Ну и собственно игра запускалась.
|
LinkOFF, создай кнопку процедурой прикрепи к ней функцию запуска ехе файла
|
Всё, разобрался, сделал вот так:
Код:
if (not IsWin64) then begin Код:
if (not IsWin64) then Код:
if IsWin64 then |
|
MarkusEVO, а ты думаешь пользователь глупый?
|
Цитата:
Бывает что такое задают, что аш реально хочется по головке пройтися, всё у них перед глазами написано и всё равно задают :biggrin: |
MarkusEVO, Таких в наше время поискать надо))
|
Цитата:
Ну так ты поможешь? Знаешь как? Заранее благодарин :bow: |
MarkusEVO, я просто ща не на своём компе дома буду посмотрю)
|
MarkusEVO, а файл "botva2.iss" не пробовал открыть?
|
nik1967, без справок никуда ИМХО
|
Всем привет.
У кого-то есть скрипт рекодингов, тот что они юзают на даный момент? Пару строчек хотел бы увидеть) |
ntrx, скрины дай.
|
Цитата:
Помогите мне с шифрованием архивов.Я создал архив FreeArc и поставил пароль, теперь мне нужно вписать в скрипт ISDone пароль чтоб распаковались архивы.Я облазил справку ISDone но не нашел ничего |
|
LinkOFF, что именно интересует в скрипте?
|
Цитата:
Цитата:
Вот, сляпал на скорую руку. Скачать. |
Цитата:
|
Подскажите, пожалуйста, что написать в NextButtonClick чтобы "внутренности" отрабатывались только на странице wpSelectComponents
т.е. примерно так Код:
function NextButtonClick(CurPageID:integer): Boolean; |
NextButtonClick работает в момент перехода на страницу. приведенный код сработает, при переходе со страницы wpSelectComponents на следующую. А что именно нужно сделать?
Вот так будет более правильно, в моем понимании: Обновил пост |
Лександер, спасибо, странно почему-то не сработало
Код:
function NextButtonClick(CurPageID:integer): Boolean; |
Цитата:
Цитата:
|
Лександер, в примере вышше помоему else не хватает на общий результат если ни одно условие не подошло
|
Цитата:
|
Лександер, тогда логически неверно: сначала отрабатывает case CurPageID of wpSelectComponents: Result := false, а ниже уже Result := True!
|
Цитата:
|
Ктонить может подкрутить скрипт, чтоб та часть что касается возврата оригинальных файлов, запускалась только если выбран компонент "Game\Lokal\Backup", а та часть что отвечает за проверку на оставшыеся файлы, если выбран "Game\Full"?
|
Цитата:
Код:
function NextButtonClick(CurPageID: Integer): Boolean; |
Всем привет.
Подскажите пожалуйста, что это за ошибка и как исправить? |
ntrx, может так?
Код:
fsItalic]; |
Rikill, нет.
|
ntrx, я насчитал 64 символа в строке, а ругается на 74 символ, на закрывающуся скобку
скрипт |
R.i.m.s.k.y., да.
Я вот не пойму почему так... Ругатся на эту строку начало, после того как поставил секцыю [RUN] и [Tasks]. |
ntrx,
у меня так с закрывающими эндами бывает - ругается не там где не хватает, хотя намудрил выше места ругани так шта ишшы, должон быть скобка |
Вчера работал скрипт нормально..
|
ntrx,
я батарейки для хрустального шара берегу - дорогие стали вот и вспоминай чего наворотил с послевчерашнего :tongue: |
Где можна найти пример прикрутки скина в инсталлятор?
|
Цитата:
Нужно убрать лишние 2 скобки. Код:
Caption := ExpandConstant('{cm:Welcome1}'#13#10'{#MyAppName}'); |
Цитата:
|
Хэх...
Ну проблема была в этом: #define MyAppName "Hell's Reach" В слове Hell's просто нужно было убрать апостроф. |
Цитата:
ntrx, если нужно апостроф сохранить, удвой его: #define MyAppName "Hell''s Reach" |
Здравствуйте!
Модератор: TROY Diamond учитесь оформлять сообщение, скрываете большие тексты тегом more, код выделять тегом code. Писать в тексте слова вроде ПОМОГИТЕ МНЕ ПОЖАЛУЙСТА!!! пустая трата времени + нарушение правил оформления сообщения. |
Подскажите, как делают "компактные RePack'и" для игр типа Quake, CoD, SRS и т.п., где большая часть ресурсов игры уже упакована во что-нибудь "слабо сжатое" (что ещё раз бесполезно ужимать), например в переименованные zip-архивы *.pak, *.iwd, *.pk3?
Надо сначало это всё дело распаковать в отдельные папки, загнать в Inno, НЕ хочу создавать SFX-архивы, хочу просто всё ввиде соответствующих папок лежало в инстале, которые извлекаются из инстала и сразу же перепаковываются, а потом удаляются. Так? или есть другой способ?! БУДЬТЕ ЛЮБЕЗНЫ, дайте, пожалуйста, полный скрипт инстала для пакетов кодеков K-Lite! Цитата:
Помогите!!! |
TROY Diamond,
я, к примеру, не могу вычленить из потока сознания техзадание: чего надо то? почему не упаковывать стандартными средствами инно? И верхний пример проверки установленной программы вполне годный. А что до усовершенствовать, то у каждой биологической модели человека свои понятия совершенного, а кнопки "сделать гут" еще не придумали. Ставь конкретные вопросы: чего нужно, чего непонятно, первое-второе-третье Я на прошлой странице спрашивал, веришь-нет - ответили. Потому что грамотно спросил: что хочу и в чем затык. И не думай что за тебя скрипт писать будут! Что до к-ляйта, то возми Inno Unpacker и распотроши его Только не жди многого, там очень жирная секция кода, она только дизассемблируется Ну а для начала советую в стандартном инно компиляторе нажать F1, в строке поиска ввести Installation order, и почитать Проблемы с английским? в шапке русская справка |
Цитата:
в ~75% случаев достаточно отрегшотить* ключи реестра устанавливаемой программы, исключив HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\* - это секция установки/удаления программ в панели управления сделать это нужно в двух системах: х86 и х64, тк ключи реестра будут разными Цитата:
не вижу в них смысла кроме возможности вывода красивых процентов и времени распаковки инно на максе жмет не хуже, а может даже чуть лучше Цитата:
скачай в шапке самые простые примеры, разбери, почитай и запомни - простой репак чего_ты_там_перепаковываешь в 100500 раз стабильнее красивостей док-ва на руторе в раздачах игр-репаков ---------------------- * отрегшотить - отследить установку проги программой regShot, она же умеет отслеживать устанавливаемые файлы |
Цитата:
Цитата:
Цитата:
Цитата:
Да, мне не нужна эта гламурная мишура я спрашиваю как сделать такой репак, zip-архивы ведь не пережмешь, мне надо их все распаковать, упаковать в Инно, а потом снова всё это создать обратно? Цитата:
Цитата:
Цитата:
http://rghost.ru/27877781 НО ЭТО ТОЛЬКО ПО ПЕРВОМУ ВОПРОСУ И ТО НЕ СОВСЕМ... (А по-второму вопросу про установщики для игр типа Call of Duty и Quake. И по третьему вопросу про игру Street Racing Syndicate, чем и как открыть формат *.ar, + скрипт чтобы его упаковать, а в процессе установки обратно создать)? Он мне не подходит!!! Так как проверка НЕ "универсальная", - "заточена" под Inno Setup!!! А если приложение было установлено другим инсталлятором, например Wise или InstallShild и/или файл деинсталлятора имеет другое имя и или находится НЕ в папке установки! Мне нужно, чтобы при запуске моей сборке, происходило обнаружение ранее установленного этого же приложения, НО НЕ ТОЛЬКО С ПОМОЩЬЮ МОЕГО ИНСТАЛА!!! С предложением, его удалить, запустить, выйти и ПРОПУСТИТЬ (ВСЁ РАВНО ПРОДОЛЖИТЬ УСТАНОВКУ) - т.к. очень часто пользователи некорректно удаляют приложение, НЕ с помощью деинсталлятора (а ключ в реестре всё равно весит), проги -то нет, но НЕ запустить НЕ удалить, НЕ переустановить её НЕЛЬЗЯ!!! К примеру, пользователь, ДО этого устанавливал программу с помощью другого инсталла и/или неправильно её удалил. А тут он взял мою сборку - запустил она нашал ранее установленную и предложила её либо удалить, запустить или всё равно продолжить установку (удалив/затерев или "поверх" поставив). Хочу, чтобы у меня был "установщик-чистильщик", при запуске, которого, будет найдена ранее установленная программа, а при корректном удалении её - УДАЛИТСЯ ВСЁ, включая и то, что было создано в процессе установки/использования, как моей так и другой сборки! |
Как ярлыку задать параметр скрывать консольные окна? Запускать командную строку в скрытом режиме?
Дело в том, что при запуске утилиты сбиваются, настроенные мной опции... мне ничего не пришло в голову, как создать bat'ник, который эти настройки восстанавливает обратно, по закрытии утилиты. И ярлык я сделал именно на этот bat'ник, а не на саму утилиты. Пользователь запускает утилиту с ярлыка, запускается bat-ник, который запускает утилиту, а после вносит изменения в реестр и весит на пол-экрана пока утилиту не закроют!!! Как его скрыть?! ИЛИ МОЖЕТ БЫТЬ ЕСТЬ КАКОЙ-НИБУДЬ ДРУГОЙ СПОСОБ, КОГДА ПРИ ЗАПУСКЕ ОДНОЙ ПРОГИ С ЯРЛЫКА ВЫПОЛНЯЛАСЬ БЫ ЕЩЁ ПОТОМ И ДРУГАЯ? В данном случае, мне нужно после закрытия утилиты внести/заменить некоторые записи в реестре, которые утилита изменила. Как при установке запустить "на мнгновение" определённое приложение (буквально на 1-2 секунды), а потом автоматически его закрыть, как при нажатии на крестик или на кнопку "Отмена"/"Закрыть". Приложение находится в инстале и копируется в папку основного приложения. В принципе её можно и вручную, потом запустить, или "чекбокс" поставить в конце, но я хочу чтобы всё это было сделано "на автомате"! И всё это необходимо "провернуть" в скрытом режиме, чтобы пользователь не видел запускаемого приложения, именно поэтому нужно, чтобы прога сама автоматически закрылась! Наверное, надо как-то "убить процесс"?! |
TROY Diamond, ты только себя читаешь?
тебе известен способ как ищется твоя прога? ты уже хотя бы отрегшотил что пишет в реестр твоя прога? к тому же задаешь такие общие вопросы, что у меня закладываются подозрения что компьютер появился около месяца назад не обижайся если ты сам свою задачу разложишь по полочкам и начнешь с начала то а) будет проще самому разобраться б) задавать конкретные вопросы по одному разу и получать конкретные ответы, в конце концов кому тут помощь нужна? начать следует как раз с того какие изменения нужно сделать в системе чтобы поставить прогу: скопировать файлы, записать в реестр, зарегить библиотеки. это ты знаешь? если знаешь - начинаешь потихоньку заполнять Setup/Files/Registry кстати это ответ на твой вопрос "как узнать стоит прога или нет?" поменьше эмоций, у компилятора нет параметра /emotion=true батник запускается сам и висит окном, скрыть его нельзя, наследие доса строки в батнике запускаются последовательно одна за другой если нужно запустить скопом из батника - в начале поставь start прога.ехе, следующая прога запустится не ожидая окончания предыдущей но если ты батник запускаешь из инно то есть параметр runhidden - черного окна батника не будет видно, и ошибок тоже И если ты знаешь про раздел реестра "установка/удаление программ" то наверное знаешь и про ключ UninstallString - строчка с деинсталлятором, которую нужно запустить для удаления Это дурной тон удалять то чего не просят. Достаточно чтобы инсталлер проверил что есть "инородное вкрапление", предупредил и закрылся. Цитата:
|
Привет всем)щас задался вопросом)мне надо сделать онлайн инсталл InnoTools Downloader т.е он скачивает архив (эт знаю как справку читал) а как сделать чтобы файл скачивался в темп и дальше шла распаковка через ISDOne?И распаковка шла в путь указанный в сетупе)кто нибудь задавался таким вопросом???или есть примеры кроме стандартных с сайта буду рад))
|
Цитата:
Модератор: TROY Diamond учитесь оформлять сообщение, скрываете большие тексты тегом more, код выделять тегом code. Писать в тексте слова вроде ПОМОГИТЕ МНЕ ПОЖАЛУЙСТА!!! , да еще большим шрифтом пустая трата времени + нарушение правил оформления сообщения. |
Доброго дня!
Люди помогите решить задачу... Через препроцессор пишу в ини дату: Код:
#expr WriteIni(MyAppSourcePath + "\profiles\settings_ru.ini", "Section1", "ReleaseDate", GetDateTimeString('dd.mm.yyyy', '', '')) Код:
ReleaseDate=01.12.2011 Код:
ReleaseDate="01.12.2011" |
никто не в курсе собираются разработчики портировать inno на 64 бита? вообще разработчик достаточно ленивый походу такую маленькую программку до сих пор не портировал. прямо странности
|
dracosha, что если добавить AddQuotes?
Код:
#expr WriteIni(MyAppSourcePath + "\profiles\settings_ru.ini", "Section1", "ReleaseDate", AddQuotes(GetDateTimeString('dd.mm.yyyy', '', ''))) |
Arsi000, всё работает и хорошо. Зачем это нужно?
|
Rikill, между прочим я старался помочь, пытался узнать чего нужно, на понятые мною вопросы я ответил
а смысл в сообщениях обратно пропорционален кол-ву знаков что до per rectum ad astrum я только сегодня после обеда вкурил что TROY Diamond хочет такой изврат сотворить, у меня просто в голове не укладывалась вся абсурдность этой затеи столько писать и я смогу, см на моем сайте инструкции :) |
Как сделать такое как на скрине?
собственно нужно, сделать такие чебоксы, а вот где выделено красным, там должна быть типа превьюшка, т.е если выбран первый чебокс, то одна превьюшка, если выбран второй чебокс, то вторая превьюшка и.т.д, в общем чтобы менялась картинка в зависимости от выбранного компонента, можно такое реализовать? |
Devils Night, а как может быть три подряд выбранных радиобаттонов?!
Сейчас очень быстро накатал примерчик, так что умные люди сильно ногами не бейте, а поправьте меня. Пример не работает, но думаю если приложить немного знаний и сил то заработает, просто самому интересно стало. :) Код:
[Setup] |
Rikill, Не то.
Цитата:
Именно при выборе, а не при наведении. |
Цитата:
|
Тут появилась проблема, хотел чтобы при удалении удалялась папка MyProgs в C:\Documents and Settings\Имя_Пользователя, но {userprofile}/MyProgs не отрабатывает, подскажите, как решить?
Лександер, Спасибо большое. |
Вложений: 1
Цитата:
А так-же, удаляяя из секции сода, не забываеш обрамлять в ExpandConstant('{userdocs}\MyProgs')? P.S. Накидал тут самый короткий пример вставки изображений на все страницы инсталлятора. Страницы "зашториваются" автоматически, при создании новых страниц - теоретически так-же автоматом затекстурируется(не пробовал, но должно) |
Цитата:
C:\Documents and Settings\Имя_Пользователя\Мои документы\MyProgs а нужно в C:\Documents and Settings\Имя_Пользователя\MyProgs |
|
Лександер, Оно вот такую фигню выдало
Скрипт обычный Цитата:
|
Цитата:
в шапке есть ссылка на стандартные папки винды http://www.forum.oszone.ru/showpost....&postcount=102 |
|
Цитата:
|
Цитата:
Цитата:
|
Цитата:
А как нибудь попроще нельзя? А то как бы я в этих тонкостях не волоку. |
Цитата:
R.i.m.s.k.y., уже :) просто не хочет, почемуто работать в CurUninstallStepChanged, попробовал в DeinitializeUninstall - там заработало. |
Лександер, ты через реестр хочешь выдирать путь до папок? неправильно, сильно глюкаво сие есть
лучше пример из шапки адаптируй как Devils Night надо не, я мог бы и сам, но мой большой толстый скрипт из которого я примеры дергаю лежит дома а тут делов то, к CurUninstallStepChanged прикрутить удаление папки из перечисленного в шапке |
как-то так
Код:
const я своими RD/RF пользуюсь |
Лександер, я вообще-то путь удаления взял из твоего скрипта выше
свой скрипт поправил к тому же это плохой тон править сообщения выше после критики снизу :) |
Цитата:
Цитата:
Разве нет? |
Цитата:
я не знаю что там с DelTree, когда я столкнулся что на шаге ssInstall ничего не удаляется, я стал использовать RF/RD что в примере выше |
Цитата:
P.S. Получить userprofile штатно: Код:
GetEnv('USERPROFILE'); |
Если приложение "мультиразрядное"...
1. Сам по себе Inno Setup по умолчанию делает "универсальные" установщики, которые будут работать на всех ОС или нет? Если к примеру, программа может работать как на 32-х, так и на 64-х разрядной версиях Windows, то нужно ли в скрипте установки указывать какие-нибудь дополнительные параметры? Например: "ArchitecturesAllowed=x86 x64 и/или "ArchitecturesInstallIn64BitMode=x64"? А также если программа по умолчанию должна устанавливаться в в папку "Program Files", то путь прописывать какой константой: "{pf}" или "{pf32}"? Аналогичный вопрос по поводу папки Windows и System как с ними быть в 64-х разрядной ОС? ИМЕЕТСЯ ВВИДУ, ЧТО ПРИЛОЖЕНИЕ СОДЕРЖИТ 64-Х РАЗРЯДНЫЕ МОДУЛИ: системные файлы, библиотеки, драйвера, а не просто поддерживают обе версии ОС. Т.к. как большинство 32-х разрядных приложений может вполне нормально работать и на 64-х разрядной ОС! ИЛИ ЖЕ ВСЕ ЭТИ "ТОНКОСТИ" НУЖНЫ ЛИШЬ КОГДА ПРИЛОЖЕНИЕ 64-х РАЗРЯДНОЕ и будет работать, только на 64-х разрядной ОС? 2. Ещё подобный вопрос по поводу 32-х разрядного приложения, которое будет запускаться на 64-х разрядной ОС, в таком случае, что писать в скрипте? 3. И последнее, когда приложение само по себе 64-х разрядное, то установщик для неё то же должен быть 64-х разрядным? Т.е. чтобы инстал был 64-х разрядным и вообще НЕ запускался на 32-х разрядной ОС. Умеет ли Inno Setup это делать и можно ли собрать установщик для 64-х разрядного приложения на 32-х разрядной ОС? |
Цитата:
Цитата:
или зависит от самого приложения где ему комфортней Цитата:
читай в справке 64-bit Installation Limitations и Install Mode: 32-bit vs. 64-bit Цитата:
Цитата:
Цитата:
Цитата:
пишешь ArchitecturesInstallIn64BitMode=x64 Цитата:
Цитата:
при четком понимании процесса и ясной голове проблем не возникнет ПыСы: какие вопросы такие и ответы ArchitecturesAllowed задает тип винды на котором запускается инсталлер по умолчанию пустой, инсталлер работает в вин32 как родной, в вин64 как 32 битное приложение, если прописать только один тип винды, то на другой инсталлер не заработает, напишет неподдерживаемая венда и закроется ArchitecturesInstallIn64BitMode=х64 говорит инсталлеру что в вин64 он будет как вин64 приложение, от этого зависят пути до папок, ключи реестра и прочее прочитай 64-bit Installation Limitations и Install Mode: 32-bit vs. 64-bit Цитата:
|
Еще три вопроса. Как сделать вот что? 1. Вопрос a) При нажатии на кнопку выводил адрес шлюза с возможностью копирования его по кнопке. b) Трассировку маршрута, т.е на странице дополнительных задач было окно в котором вводится шлюз и по нажатии Ок происходит трассировка или как там ещё называется.Визуально представить это могу, но чтобы средствами Inno это сделать, просто в голове не укладывается. 2. Вопрос Как сделать четыре кнопки Изменить, Запустить, Удалить и Отмена 3. Вопрос Как сделать так чтобы при установки определялась версия Net.Framework 3.5, если он не установлен, то сначало устанавливался Net.Framework 3.5 из папки Others, а потом продолжалася установка, если установлен то продолжал установку? |
Цитата:
Код:
function netfw35(): Boolean; |
R.i.m.s.k.y., это я закоментировал
Код:
result:=true;//шоп не закрылся инсталлер |
Цитата:
тебе надо чтобы закрылся или чтобы поставил фреймворк и продолжил? вверху - поставит и продолжит если хочешь чтобы закрылся - убери Exec и исправь if (not netfw35) then begin ... result:=false; ... кстати зря закомменил "шоп не закрылся инсталлер", если какой-то шаг вернет false в результате ошибки вызова, то без этой строчки InitializeSetup тоже может получить на выходе false и инсталлер закроется ворчание моде он народ, где вы так писать научились, а? зато никто не забывает попинать бабу-ЕГЭ книжки бы хоть почитали, грамотные, как предложения строятся, как мысль из мозга переносится на бумагу/клавиатуру хотя если учесть, что написанная мысль - есть мысль измышленная, я даже боюсь представить что там измышляется :) |
Помогите, пожалуйста, доработать, исправить, "усовершенствовать" скрипт!
Или поделитесь какими-нибудь другими кодами создания индикаторов процесса "для секции [Run]" ПРОБЛЕМА: Индикатор работает НЕ на всех темах!!! [Setup] AppName=MyProg AppVerName=MyProg DefaultDirName={pf}\MyProg OutputDir=. Compression=lzma/ultra SolidCompression=yes [Languages] Name: russian; MessagesFile: compiler:Languages\Russian.isl [Files] Source: compiler:Examples\MyProg.exe; DestDir: {app}; Flags: ignoreversion [code] function SetWindowLong(hWnd: HWND; nIndex: Integer; dwNewLong: Longint): Longint; external 'SetWindowLongA@user32.dll stdcall'; function GetWindowLong(hWnd: HWND; nIndex: Integer): Longint; external 'GetWindowLongA@user32.dll stdcall'; const PBM_SETMARQUEE = $040A; GWL_STYLE = -16; PBS_MARQUEE = $08; var AnimatePb: TNewProgressBar; procedure CreateAnimatePb; begin AnimatePb := TNewProgressBar.Create(WizardForm); with AnimatePb do begin Parent := WizardForm.InstallingPage; SetBounds(WizardForm.ProgressGauge.Left, WizardForm.ProgressGauge.Top + WizardForm.ProgressGauge.Height + ScaleY(10), WizardForm.ProgressGauge.Width, WizardForm.ProgressGauge.Height); SetWindowLong (AnimatePb.Handle, GWL_STYLE, (GetWindowLong (AnimatePb.Handle, GWL_STYLE) or PBS_MARQUEE)); SendMessage(AnimatePb.Handle, PBM_SETMARQUEE, 1, 20); end; end; procedure AnimatePbMsg(const msg: string); begin if AnimatePb = nil then CreateAnimatePb; WizardForm.FilenameLabel.Caption := msg; end; procedure AnimatePbFree; begin if AnimatePb <> nil then begin AnimatePb.Free; AnimatePb := nil; end; end; [Run] Filename: {app}\MyProg.exe; BeforeInstall: AnimatePbMsg('Создание файла...'); Flags: skipifsilent Filename: {app}\MyProg2.exe; BeforeInstall: AnimatePbMsg('Создание файла...'); Flags: skipifsilent Filename: {app}\MyProg3.exe; BeforeInstall: AnimatePbMsg('Создание файла...'); AfterInstall: AnimatePbFree; Flags: skipifsilent ПРОБЛЕМА: Индикатор работает НЕ на всех темах!!! А также: 1. Нужно поднять индикатор выше, чтобы он был на том же самом месте, что и оригинальный и выглядел также. 2. Убрать сообщения, т.к. я использую "StatusMsg", а если не использовать, то появится сообщение "Завершение установки" 3. Сделать кнопку "Отмена" активной и вернуть возможность прерывания процесса установки. Если нельзя ничего этого сделать, поделитесь какими-нибудь другими кодами создания индикаторов процесса "для секции [Run]" У меня из секции [Run], выполняется ещё куча команд в скрытом режиме, которая занимает довольно много времени, поэтому нужна какая-то индикация... ИЛИ МОЖЕТ ЕСТЬ КАКОЙ-НИБУДЬ ДРУГОЙ СПОСОБ, для запуска и выполнения дополнительных операций, во время и/или после установки, НЕ обязательно из секции [Run] со стандартной индикацией процесса?! |
Цитата:
Цитата:
Цитата:
|
Посмотрите, пожалуйста, мой скрипт, - проверьте, исправьте если, что нужно и скажите, что да, как!
За гламуром вообще НЕ гонюсь... наоборот, всё должно быть компактно, аккуратно и близко к оригиналу... http://rghost.ru/33759851 Если есть более, простой способ всех проведённых мною манипуляций, то подскажите, пожалуйста! А также, посоветуйте, пожалуйста, насчёт индикатора процесса... И вообще, что касается выполнения большого количества каких-либо операций во время и/или после установки, как это лучше реализовать? Можно ли сделать кнопку "Отмена" активной и/или выполнять это всё не из секции [Run]?! А последнее по поводу "runascurrentuser" нужно, чтобы все команды выполнялись с правами Администратора! |
Как использовать *.png или *.gif картинку в WizardSmallImageFile и WizardImageFile, вместо *.bmp
|
TROY Diamond,
botva2.dll |
Vista-w,
на сколько я знаю-ботва не работает с *.gif |
ARS_23, Inno GIFCtrl не поможет???
|
Цитата:
|
Цитата:
Библиотека для вставки изображений в инсталлятор (jpg, png, gif, tif, bmp). Присутствует возможность создания обычных кнопок и кнопок имеющих 8 состояний (как у чекбоксов), а также множество разнообразных функций и процедур для работы с изображениями. В архиве (1.2 Мб) dll + примеры использования. |
valyok666, ботва отображает gif как картинку. Анимацию gif она не поддерживает. ))
|
ARS_23, ой, фу, ребят, GIFCtrl трешак ещё тот. Советую использовать fairy.dll. У неё функций побольше.
|
Rikill,
спасибо за совет может в будущем пригодится :) |
|
LinkOFF, в секцие [Сomponents] убери вот такие строчки ExtraDiskSpaceRequired: 19100000
|
Цитата:
|
LinkOFF,
Код:
[Setup] |
НЕ пинайте меня, пожалуйста! Подобное уже спрашивали!!!
1. Мне нужно наложить картинку на все диалоговые окна инсталлятора, КРОМЕ ПЕРВОЙ И ПОСЛЕДНЕЙ. А здесь есть на все окна... и только на первую и последнюю. 2. Как при удалении приложения организовать полное удаление всего, что было создано в процессе установки и использования: профили, настройки, конфигурацию, сохранения... БЕЗ использования утилит типа "Kill_Save". Как при установке (запуске) и удалении приложения находить и удалять "хвосты", "мусор". К примеру до этого приложение было установлено, - его удалили, но после него, что-то осталось? 3. Как использовать png-картинку вместо BMP в WizardSmallImageFile и WizardImageFile, - скриптик можно? 4. Константа (переменная) папки временных файлов Windows. {tmp} - ЭТО НЕ ТО!!! |
Цитата:
или используй функцию GetTempDir |
|
TROY Diamond,
на скрине немного перекрашенный инсталл от YURSHAT оригинал уже давно лежит в паблике ссылка, а перекрасить его 5сек |
Цитата:
|
Цитата:
Мне бы скриптик, так, чтобы представление иметь как картинку наложить и как внешним компресором упаковать/распаковать. Совсем НЕ обязательно весь этот гламур! |
Цитата:
|
Цитата:
Цитата:
Цитата:
|
Цитата:
Мне бы вообще простой скрипт, БЕЗ мишуры... Чтобы файлы были *.bin, лежали рядом с setup.exe и распаковка начиналась из них без копирования на винт, а потом распаковка... чтобы это всё выглядело как обычная установка. А также скрипт для упаковки файлов в zip с переименованием, для создания репаков игр типа Quake, Hitman, Call of Duty, где большая часть ресурсов игры упауовано в переименованные архивы. Я вс е эти архивы распаковал, хочу загнать в инстал, сжать, а потом, чтобы они при установке запаковывались, и сразу удалялись. Я НЕ знаю как поэтому сделал, из секции Code, поэтому сделал из Run с кучей батников, но это долго, нужно много места и дополнительная индикация процесса какая-то! http://rghost.ru/33759851 Подскажите! |
|
Доброго времени суток!
Мне нужно спросить пользователя о перезагрузке ПК после установки приложения. В параметрах установки в секции [Setup] прописал: AlwaysRestart=yes. После установки на странице Finish появляется сообщение, что надо перезапустить ПК, но при выборе "Да, перегрузить сейчас" ничего не происходит. Подскажите пожалуйста что не так? |
Gugle, симметрично доброго!
а случайно системная функция NeedRestart не переопределена? |
Здравствуйте! Помагите пожалуйста создать такие окна инсталяции
|
Как с помощью [INI] или как-то по другому создать файл, текстовый и другие, НО ТОЛЬКО С ОДНИМ ЗНАЧЕНИЕМ "ВНУТРИ", БЕЗ параметра, никаких "Section", "InstallPath", НЕ надо!
Только одно значение БЕЗ всего - в одну строчку, без кавычек, тире, двоеточий, типа открыл это файл, а там только: htuifgvifgj4575489jgfkgfmgf765авроршгщ и всё больше ничего нет! |
TROY Diamond, функция SaveStringToFile или SaveStringsToFile
|
Цитата:
|
TROY Diamond, паскалевские функции пишутся только в Code
|
Как сделать, чтобы установка продолжалась, ТОЛЬКО после "прочтения" Лицензионного соглашения и/или какого-то сообщения.
Я видел, к примеру, кнопки не активные, пока не прокрутишь текст до самого низа... |
Подскажите как перед установкой программы, удалить какой либо ярлык? Можно это сделать средствами установщика или надо писать скрипт?
спасибо |
Цитата:
Код:
echo www > c:\1.txt |
Цитата:
|
Как задать в свойствах ярлыка или где, чтобы прога запускалась, только с правами Администратора? На Висте и 7-ке ярлык со "щитом." Или это только в Манифесте прописывается?
|
TROY Diamond
Цитата:
TROY Diamond, Цитата:
Цитата:
|
Мне нужен код чтобы разрешить установку части контента, но только при помощи ключа.
Например: MyProg.exe /verysilent /x1 /x2 итд... Чтобы из секции файлов копировались файлы с флагом Code: {x1} и Code: {x2} и остальные как обычно. Просто не помню как к коду это привязать. GUI диалог мне не нужен! Только средством ключей, и хотя бы пару покажите, ато я сам запутаюсь. --- И ещё мне нужен ключ, чтобы указать путь установки: /PATH=... Как это в InnoSetup работает, есть ли ограничения? Всмысле мне нужно чтобы путь указывался только посредством ключа коммандной строки, а в GUI режиме не было возможности указать путь. Это возможно? Покажите пожалуйста? |
Цитата:
Код:
[InstallDelete] |
Помогите, пожалуйста!
Мне нужно чтобы [Files] ... Components: a ... Components: b ... чтобы компоненты a и b поумолчанию не устанавливались, и устанавливались только при явном их выборе. Причём нужен выбор этих компонентов из коммандной строки, например, /A /B и не зависимо друг от друга. Графический (GUI) выбор компонентов совсем не нужен и лучше его скрыть, тем более что файлы группы A и B по умолчанию исключены. Проще говоря нужно такое файл_1 установить = да файл_2 установить = да файл_3 установить = нет файл_4 всегда установить итп. управление только с коммандной строки, хотя в худшем случае можно продублировать в GUI |
Цитата:
Код:
[Files] по поводу компонентов - инно поддерживает сам параметр /COMPONENTS="a,b" читай в справке Setup Command Line Parameters |
i is unknown parameter! я паскаль не знаю, как поправить? определил как i : integre, сразу последовало тоже самое с st
--- Цитата:
|
semiono,
поправил верхнее сообщение Код:
Function InitializeSetup: Boolean; |
мой вопрос наверное с большой бородой и не раз задавался, тем не менее немогу разобратся, суть проблемы такова - имеется игра и имеется дополнительный софт (GfWL, visual c++, directx и т.д.) собственно необходимо даный софт прописать в скрипте так чтобы в процессе установки в инсталятора были опции (снять-поставить галочку) с выбором устанавливать или нет даный софт, как ни ковыряю скрипт получается только прописать распаковывать при установке в папку с игрой софт или нет, а вот установку как запустить немогу понять.
З.Ы. Надеюсь понятно описал суть проблемы и не очень сумбурно |
Ура! Кажись работает как надо! Только end ещё один не хватало...
i: Integer; st : String; |
Photon9, скрипт скрасил бы твой сумбур :)
пока примерно так Код:
[Tasks] Цитата:
|
R.i.m.s.k.y., у меня кажется всё ещё проблемма)
При пустом вводе без параметров не работает, когда я end сам добавил. Сейчас перед end добавил Result := True; стало работать но боюсь что не корректно... пока проверяю.. Мне нужно чтобы работало как с параметрами /x1 /x2 так и без них, причём могут быть дефолтные ключи, например /verysilent надеюсь это не должно конфликтовать? Пока конкретная проблемма с пустым вводом получилась... |
YURSHAT
Спасибо всё работает, НО нужно чтобы файл создавался в процессе установки, как из "[INI]" и/или был пустым, а потом вводил моё значение? Тоже работает, спасибо! Это "надёжный" способ? Пользователь никак НЕ сможет продолжить установку БЕЗ прочтения?! А, что вот это закомментированное "//WizardForm.Caption:= IntToStr(CurrLine);", такое, если его раскомментировать и скомпилировать, то название приложения изчезает и в заголовке и появляется "27" Как в процессе установки запустить, а потом автоматически его закрыть, не имеет значение из секции Run или Code? Можно ведь, наверное и через "taskkill.exe" как-то это сделать? Есть ли возможность при запуске установщика и/или в процессе установки, собрать необходимые сведения о компе, а потом их добавить в ветку реестра устанавливаемого приложения? Или может какой-нибудь параметр есть? Есть же ведь имя компа, имя пользователя и т.п. Это ведь определяется? Мне ,к примеру нужно, в реестре в ветке приложения создать ключ для видеокарты: "3D Device" со значение "Название видеокарты" и т.п. А кнопка "Отмена" и сам установщик, должен не реагировать во время выполнения команд из секции Code? Это никак не исправить? И когда его "отпускает" если нажать на кнопку "Отмена", можно ли "откатить" всё, чтобы в папке установки ничего не осталось или это действует только на "стандарт"? |
а ну всё! получилось, протестил варианты!
|
semiono, /verysilent как видишь не учитывается и никак не влияет
какое второе условие на копирование в секции Files x1files? выбор из списка компонентов? у тебя /х2 /х1 всегда идут вместе с /verysilent? я ж не знал что у тебя еще условия, какие граничные условия обозначил - такие я тебе и сделал естественно что можно в подчековую функцию напихать таким же макаром еще проверок для конкретизации Цитата:
TROY Diamond почисть личку, ничего не отправляется |
Код:
; ~ 2001-2005 GmbH, Semiono //setup.exe //setup.exe /x1 //setup.exe /x2 //setup.exe /x2 /x1 //setup.exe /x2 /x1 /verysilent это как в КП: "давим окурок левой ногой, потом правой а потом обееми сразу" :laugh: Цитата:
|
Вложений: 1
Вот мой файл который можно использовать так: killsys.exe calc.exe.
Код 32-битный, но он может закрывать 64-битные приложения. Работает рекурсивно, то-есть закроет все процессы. Исходник: Код:
include '%fasm%/win32ax.inc' |
Цитата:
а это уже к ветеринару, а не к нам |
Вложений: 1
Вот скрипт, не уверен что я правильно вставил данные, жду совета
|
semiono,
как использовать killsys.exe Exec(ExpandConstant('{tmp}\killsys.exe'), 'setup.tmp', '', SW_HIDE, ewWaitUntilTerminated, ResultCode); так не работает. как надо? |
Photon9, инно не кусается, запусти и сам все увидишь
|
По ходу прощёлкал момент с кодировкой и русские надписи знаками вопроса отмечены, но это чепуха исправить не сложно, главное чтобы скрипт работал
R.i.m.s.k.y., если ты обращался ко мне то проверить можно конечно, но размер дистрибутива 9 гигов, неохота по нескольку раз компилить |
Photon9, делай в секции Files пустышки, легкие файлы чтобы только отследить копирование
по факту в Tasks GroupDescription - это описание группы, писать надо по русски, а ты по английски чего-то нагромозекал Код:
[Tasks] |
Боюсь показатся тупым, но как под соответствующие пункты подставится требуемый софт если в разделе [Tasks] путь к дистрибутивам не указан?
|
Немного переделал скрипт
|
sergey3695, нужно указать в качестве параметра имя процесса который надо закрыть, например, notepad.exe.
тебе нужен ShellExec(), а не WinExec(), чтобы указать параметры. как-то так.. ShellExec('', ExpandConstant('{tmp}\killsys.exe', 'notepad.exe', '', SW_HIDE, ewWaitUntilTerminated, ErrorCode) Попробуй без InnoSetup запустить killsys notepad.exe и увидешь как это работает. |
Photon9, Если я тебя правильно понял, то через секцию [Run] устанавливай свой софт только дописывай
Tasks: "имя софта в секции таск"; |
Вложений: 1
С секцией tack я вроде разобрался, но вот на секции run скрипт стопорится :( матерится на Parametrs: " /Q /norestart"
И ещё вопросец как в ярлыке прописать рабочую папку, делал так но почему то не прописывается: [Icons] Name: {group}\FalloutNV; Filename: {app}\FalloutNVLauncher.exe; WorkingDir: {app} |
|
1. Почему не работает этот код для удаления сохранений?
Код:
[_Code_] В процессе установки создаются файлы, о которых установщик "не знает", можно ли их как-то их "вписать"? Или же просто использовать секцию [UninstallDelete]? |
Как в секции Files соединить: "AfterInstall: ExtLog()" и "AfterInstall: Pack('...')", как вместе поставить: ExtLog() и Pack('...')
Как в процессе установки запустить приложение, а потом автоматически его закрыть, не имеет значение из секции Run или Code? |
Вложений: 1
Так как у меня не все файлы дополнительного по лежат в корневой папке, я немного переписал скрипт предложеный valyok666, под себя, и вроде всё получилось, до того момента когда завершается установка, при установке дополнительного по - выскакивает сообщение - неверно задано имя папки.
|
Photon9, значит неправильно задано имя папки
проверяй пути, смотри чтобы все запускаемое было на том месте, где его ждет инсталлер можешь использовать "читерский" флаг skipifdoesntexist - если файла нет, инно продолжит без ошибки :) |
Цитата:
|
R.i.m.s.k.y., да вот как раз здесь то и стопорюсь вроде пути правильные, а не идёт. Подозреваю что просто что то лишнее в скрипте прописал, пути к файлам выглядят так:
Fallout New Vegas-->Redist-->directx-->DXSETUP.exe Fallout New Vegas-->Redist-->vcredist_x86.exe (это 2005) Fallout New Vegas-->Redist-->vc2008-->vcredist_x86.exe (это 2008) Fallout New Vegas-->Redist-->dotNetFx40_Full_x86_x64.exe В скрипте вроде прописал соответственно, так что х.з. |
Photon9, я тоже криминала не вижу в путях, ну разве что вместо англ буквы ты написал похожую русскую, к примеру вместо c - с ;)
ты бы ошибку написал хоть, для определенности и последнюю строчку лучше сделать так: Код:
Check: IsWin64; Filename: {app}\Redist\dotNetFx40_Full_x86_x64.exe; WorkingDir: {app}\Redist\; Parameters: /silent; Tasks: Redist\dotNetFx40_Full_x86_x64; Flags: waituntilterminated; |
Да но в таком случае скрипт валился бы при компиляции, а так при установке выдаёт сообщение - неверно задано имя папки - и код что то на 4 начинается
Хм, мде упущение моё надо писать не Redist, а Redists - попробую ещё раз скомпилить |
Photon9, не должен валится скрипт, ты ставишь фреймворк х64 без проверки разрядности винды, Check: IsWin64; добавляет такую проверку и на х86 такой фреймворк пропустится
|
Вложений: 3
Вобщем почти получилось, однако есть несколько но:
1. Никак немогу в свойствах ярлыка прописать параметр "Рабочая папка" 2.Почему список дополнительного софта выглядит так коряво, и когда ставлю галку на Дополнительное ПО , отмечается только директ, зато когда ставлю на С++ 2005 то ставится и на 2008 3.Непонятно ставится ли директ, просто перед установкой c++2005 (которая как ни странно вылетает с ошибкой и не выполняется) происходит длительная пауза (минуты 3) если же установка идёт в фоновом режиме то это не вариант |
Photon9, не стараешься
1. попробуй поставить кавыки в параметре WorkingDir 2. смотри в вике значение слова "иерархия", к тому же у тебя охрененный косяк - разные task под одним именем И обрати внимание на флаг dontinheritcheck у task FrameWork4, запустишь инсталлер потыкай - увидишь чего делает, может ненадо 3. /silent - это параметр инно-инсталлеров, у МС это /Q, /quite, /passive. Поэтому и ругался vcredist2005 Хоть бы разобрался чего запускаешь, ведь он тебе явно писал "будь мужыгом, запусти с параметром /?" А ты какой то нелюбопытный :) Код:
; Скрипт создан при помощи мастера создания скриптов. |
С кавычками попробую
Касаемо корявого вида меню сделал немного по другому, каждую софтину пихнул в отдельную папку и всё пришло в норму, тоесть меню выровнялос, и выделяется каждый пункт по отдельности, а еслм выбрать "дополнительное по" то все вместе А вот с этими дополнительными командами я запутался несколько, сейчас скрипт подправлю |
Photon9, читай побольше справку)без неё никак
|
как сделать mesagebox при запуске инсталятора чтобы проверялось наличие ключа реестра и если ключ существует then "Программа уже установлена" и только кнопка ок?
чтобы без if CurPageID=wpWelcome |
salat,
Код:
Function InitializeSetup: Boolean; |
ув. пользователи возможно ли запихнуть картинки заместо текста в разделе компоненты
ну допусти чтоб за место текста "Blue" из "- Style" было изображение не большого размера http://s017.radikal.ru/i429/1112/b4/78e91b267ff3.png |
kenny_danger, на сколько я знаю - нет. Но можно воссоздать вручную чекбоксы с радиобатонами и вместо надписей сунуть картинки по стандартному.
|
kenny_danger, смотря на картинку а тебе не пофиг? :tongue:
|
Доброго времени суток!
Как сделать иконку на сервис? Мне нужна иконка для запуска сервиса. Ручками это можно сделать легко, в свойствах иконки "Объект" надо прописать "net start имя_сервиса", но с помощью inno не получается. Код:
Name: "{group}\Старт сервис имя_севиса"; Filename: "net start имя_севиса" |
Gugle, я бы вот так попробовал
Код:
Name: "{group}\Старт сервис имя_севиса"; Filename: "{sys}\net.exe"; Parameters: " start имя_севиса"; WorkingDir: "{sys}" |
Вообшем я добился того чего хотел (почти), через библиотеку isUtlits все работает в процессе, но когда открою окно сис требований, его невозможно закрыть. Я одного немогу понять как сделать так как написано дальше. Нужно для начала на странице сис требований (только на ней) удалить все кнопки (далее , назад, отмена), и на их место поставить одну под названием например: ок, выход. Хочеться добиться результата, чтоб при нажатии на ету кнопку можно было возвратиться к процессу установки....
Вот скрипт: |
Задание всоего значения требуемого места на диске.
Есть ли противоположное параметру "ExtraDiskSpaceRequired"? Тут уже 100 раз спрашивали подобное... НО ВЫ СНАЧАЛА ВНИМАТЕЛЬНО И ВДУМЧИВО ПРОЧИТАЙТЕ, У МЕНЯ НЕМНОГО ДРУГОЕ!!! В секции "[Setup]" есть параметр "ExtraDiskSpaceRequired", который позволяет "накрутить" увеличить реально-требуемое свободное место на ЖД... А если МНЕ НАОБОРОТ НУЖНО УМЕНЬШИТЬ... к примеру, во время установки у меня копируются/создаются "временные файлы", которые сразу же удаляются... и места требуется намного меньше. Но установщик считает размер всего упакованного в него... Или как задать своё значение требуемого места на ЖД в "стандарте"? Есть много вариантов, но они только на увеличение: если места не хватает (в соответствии с заданным значением), то кнопка "Далее"/"Установить" не активна. А если хватает (в соответствии с заданым значением), то "пропускает", НО ДАЛЬШЕ ПОЯВЛЯЕТСЯ "СТАНДАРТНОЕ ОКНО" с предупреждением, что места не хватает! Это конечно, не страшно, установку можно продолжить, НО пользователя, это может смутить. Как его убрать и/или "подкорректировать стандарт"?! Я ЗАДАЮ, ЧТО: Требуется, к примеру, 6 ГБ (а содержимое весит около 8 ГБ), если у пользователя есть 6 ГБ (а 8 ГБ, к примеру нет!), то кнопка "Далее" активна, но после нажатия выскакивает "стандартное" предупреждение! Я даже не знаю как оно называются - обычное стандартное предупреждение выскакивает: Недостаточно места на диске "Установка требует не менее ... свободного места, а на выбранном Вами диске доступно только ... Вы желаете тем не менее продолжить установку?" Можно его убрать? |
Цитата:
|
1. Как сделать, чтобы первая ("Вас приветствует....") и последняя ("Завершения мастера...") страницы инсталлятора, - остались БЕЗ изменения,
со стандартной картинкой (164x314), а на все остальные (включая, "Лицензионное соглашение", "Важную информацию" и т.п.) наложить картинку (или разные) на все окна? НО с полным сохранением всего текста, его размера, цвета и местоположения, с "разделением", и кнопками, короче всё как в оригинале! Если можно, то чтобы разные картинки на каждое окно... я сделал их полупрозрачными, поэтому всё будет прекрасно видно как текст, так и фон! 2. Как сделан этот установщик? По принципу NFS Undercover? Почему возникают проблемы с нормальным отображением кириллицы? Дело в кодовой странице и/или использовались нестандартные шрифты? |
3. Как на странице "Выбор дополнительных задач", сделать возможным выбор только опередённых пунктов (задач).
К примеру, если пользователь ставит "галочку" в первом пункте: "Установить такое то ПО", то второй пункт должен быть НЕдоступен и наоборот!!! У меня просто здесь не совсем "совместимые задачи", поэтому если пользователь НЕ знает, то лучше блокировать ему одновременный выбор... 4. Создание *.ini Как перезаписывать добавлять, данные в уже существующий? Как заменять/добавлять данные в файл если он имеет атрибуты: "Только чтение", и/или "Скрытый"? Как добавлять несколько значений? КАК СДЕЛАТЬ ИНТЕРВАЛ МЕЖДУ строчками [Key] и [String], например: [...] Тут "пусто" (отсуп, пробел между строчками) А дальше значение |
TROY Diamond, тот скрипт Q3 картинка затемнена в фотошопе,тема tiger а остальное похоже на закос под Fenixxa
|
TROY Diamond, у тебя стоко вопросов читай справку!!!
|
Задание своего значения требуемого места на диске.
Есть ли противоположное параметру "ExtraDiskSpaceRequired" или как убрать стандартное предупреждение о нехватке места? МНЕ НАОБОРОТ НУЖНО УМЕНЬШИТЬ размер... к примеру, во время установки у меня копируются/создаются "временные файлы", которые сразу же удаляются... и места требуется намного меньше. Но установщик считает размер всего упакованного в него... Я вот так вот сделал: 1. Задал свое значение с помощью кода, с надпись "Требуется как минимум...", - скрыл. Если места на ЖД меньше значения, чем я задал, то кнопка "Далее" не активна: 2. НО возникла другая проблема - Если размер свободного места, соответствует заданному мной значению, но меньше, чем весит всё содержимое, то установку продолжить-то можно, НО ВЫЛЕЗЕТ СТАНДАРТНОЕ ПРЕДУПРЕЖДЕНИЕ!!! ЭТО НЕ СТРАШНО, т.к. в процессе установки файлы перепакуются, а "хвосты и мусор" удалятся, - и всё будет весить намного меньше. Поэтому мне не нужно стандартное предупреждение... чтобы не смущать пользователя! МНЕ НУЖНО, ЧТОБЫ РАЗМЕР ВЫСЧИТЫВАЛСЯ НЕ ПО СОДЕРЖИМОМУ, А ПО МОЕМУ ЗНАЧЕНИЮ!!! Что делать и/или как убрать стандартное предупреждение? |
TROY Diamond, я видел что похожее но через ботву)стандартное не видел
|
TROY Diamond,
читайте справку. там есть 3 примера как сделать свое значение требуемого места на диске. |
Цитата:
|
TROY Diamond, хватить писать по пол страницы!чем меньше вопрос - тем быстрее получишь ответ
|
Полистал справку, нашёл только три примера, но оно не то что нужно.
В общем нужно чтобы перед инсталяцией, бэкапилась (перемещалась в папку Backup) вся папка {app}\My Program со всеми под папками и файлами, и независимо от заменяемых файлов. Как это реализовать? Цитата:
|
|
Доброго времени суток форумчане...
Нуждаюсь в вашей помощи. А именно мне нужно добавить исдон 0.6ф в мой скрипт. Пытался сам, перечитал справку раза на 3, все что впитал из нее и до чего додумался не помогло. Если ктото может помочь то вот ссылка, в архиве оба скриптаи файлы... Заранее благодарю. |
|
EvilAlex,Держи
обращайся) |
valyok666, все норм, спасибо огромное.
|
Вопрос по выбору языка по умолчанию.
Установка на трех языках. Т.е. пользователю перед установкой показывается диалог выбора языка. Как указать, что по умолчанию должен быть украинский? |
Цитата:
Код:
[Setup] |
Ага, я понял, первым должен быть желаемый язык по умолчанию + LanguageDetectionMethod=none
Спасибо |
Здраствуйте!У меня такая проблема: есть игра Dead Space 2 и мне нужно чтоб при выборе языка игры распаковывался файл по пути AppData\Local\Electronic Arts\.Я не знаю как мне это сделать
|
LinkOFF, не знаешь потому что справку не читаешь
два способа 1. Код:
[Files] Код:
[Files] |
дайте пожалста пример для использувания ISSideshow 1.02 на всех страницах инсталятора
|
VASYAKRN,
Типо такого? кстати есть пример exempele2 это пример только на странице прогрессбара)если немного подумать можно понять как сделать на всех)) |
Здравствуйте. Мне нужна ваша помощь.
У меня есть скрипт установщика и меня интересует 1 вопрос. как сделать чтобы во время установки сначала распаковывались файлы записанные в [Files], а потом следом архивы фриарк??? а щя всё наоборот сначала архивы а потом файлы и иззаетова у меня постоянно идёт тестовый прогон и создаётся новый файл record.ini. библиотека ISdone. Скрипт состоит из отдельных файлов через подключения модулей, поэтому так много скриптов. Всё облазил и незнаю что? где? потправить. ПОМОГИТЕ ПЛИЗ 2 день МОЗГ парю, облазил много FAQ непомогло. вот сам скрипт: тыкай сюда |
Spell1999, не проще тогда сделать архив с "файлами записанные в [Files]" в исдоне прописать их на первое место потом всё остальное)
PS Файлы скрипта тоже надо кидать) |
а если архивы прописать в [Files] и начать установку, то сразу ничево нераспаковывая вылетает ошибка типо нет архива для распаковки.
|
Здравствуйте
Цитата:
Цитата:
Код:
function IsRus: Boolean; Цитата:
|
Spell1999, чёт вы путаетесь)создайте архив с файлами(если конечно файл не один) вроде проще всего потом всё равно идёт распаковки игровых)Архивы прописываются в скрипте исдоне зачем в [Files]??или тогда уж чекбокс создать)
Насколько я понял эти файлы? Так за что они отвечают кряк или что? |
игра состоит из этих файлов и 1 папки дата которая много весит. вот я мелкие файлы приписал в истановщик а архив фриарк с папкой дата в ISdone и получается так. сначала он распаковывает архив с папкой дата а следом вот эти файлы с библиотеками в {tmp} и постоянно тестовый прогон.
а мне нада наоборот чтобы сначала файлы распаковывал а потом архив. помоги подправить плиз. |
Цитата:
|
Spell1999,
задачку конечно интересную вы поставили :) но к чему такой головняк себе придумывать? |
Цитата:
|
Цитата:
|
Цитата:
|
Spell1999, Xenus 2 от nik1967. Там есть.
|
Цитата:
|
правильно ли я понимаю что если исходный код inno считается открытым то любой кто в этом понимает может перекомпилить программу как ему нужно? то есть грубо говоря собрать свой вариант?
|
Arsi000, думаю нет
код инно шифруется на раз, в прошлой теме (часть3) я приводил пример. ищи по моему авторству и Encryption=yes он склеен из двух примеров в шапке |
возможно мы друг друга не поняли я имел ввиду что возможно ли исходя из того что код открыт переписать саму программу inno setup по своему?
просто есть друг программист, и есть большое желание портировать её на 64 бита. а разрабы ничего не делают в этом направлении. реально ли это сделать самим? |
Arsi000, это к авторам, но думаю проблем нет тк много развелось всяких надстроек над инно
а зачем инно64? он и так замечательно живет в х64 системах |
я понимаю что работает прекрасно но есть причины во первых и это главное иногда нужен именно нативный x64 setup сделать( а нельзя), во вторых
когда то поддержку 32 бит выпилит майкрософт на совсем и надо уже сейчас хотя бы начинать думать об этом, в третьих снимутся ограничения 2 гб да и просто две версии x64 и x86 лучше будет выбор кому нужно 32 бита или гибрид выберут x86 а кому нативная 64 то x64. вопрос сложный конечно но вон даже смотрю мелкие утилиты какие то переходят на 64 а inno не двигается обидно просто прога то хорошая и удобная. |
Цитата:
ЗЫ. Serega, рад вас видеть ;) А то слух пошел, что вы нас покинули ;) |
|
Serega, Вас Всегда рады видеть :beer2: Кстати Всех с Наступающим :wink2:
Предупреждение, нарушение ОПК 3.9 Цитата:
|
|
Devils Night, Както так
Serega, мое вам почтение :) |
здравствуйте, скажите как можно сделать такой вот мини-инсталятор как на картинке
|
|
у меня такой вопросик:
Инсталлер инно сам определяет о необходимости перезагрузки и в конце заменяет окно wpFinished на свое с предложением перезагрузиться. А оно, wpFinished, желательно очень. RestartIfNeededByRun=no я конечно могу поставить , но тогда надо самому отлавливать и предупреждать. Проверку к isComponentSelected я прикрутил, но это не то. Вопрос знатокам: как самостоятельно узнать при RestartIfNeededByRun=no что инно определелил необходимость перезагрузки? NeedRestart по описанию не то. Serega c возвращением, камрад! |
Лександер, Вот так, да, честно фиг бы догадался, да и я понимаю что уже был такой вопрос, но я не впёр нифига как и что, я с дуру тупо на панели искал, а OuterNotebook оказывается был рядом.
Лександер, тебе зачёт за скринкаст :up , спасибо ещё раз. |
Подскажите пожалуйста.
Пытался добавить в файл hosts нужные мне строки Код:
procedure CurStepChanged(CurStep: TSetupStep); Код:
SaveToFile(ExpandConstant('{sys}\drivers\etc\hosts')); Может можно как-то сделать чтобы нормально вносилось в оригинальный hosts? |
МИШАНЧИК, может потому что любые мало-мальски толковые антивири блокируют этот файл от изменений?
|
Цитата:
|
МИШАНЧИК, я думаю нужно копать в сторону системных функций, их каспер блокировать не станет
но тут я не знаю, может El Sanchez подскажет? |
Цитата:
http://forum.kaspersky.com/index.php?showtopic=185494 http://forum.kaspersky.com/index.php?showtopic=169424 и т.д. |
А у меня вот так прокатило:
По принципу - чего нельзя изменить, то сперва удалим :) Единственное - Для удаления лучше взять системную функцию DeleteFile, для надежности. Или волшебный смд-скрипт товарища R.i.m.s.k.y.. Цитата:
|
Цитата:
А что если поступить как нибудь проще, ну например до инсталяции, сам инсталятор сначала переименовывает hosts в hosts1, потом добавляет строки которые нужны, типа и в завершении переименовывает обратно, т.е из hosts1 в hosts, ведь ничего не мешает переименовыванию, как то так можно будет реализовать, не? |
Цитата:
Цитата:
Цитата:
Цитата:
|
Цитата:
Цитата:
Цитата:
|
Лександер,
Код:
procedure CurStepChanged(CurStep: TSetupStep); |
здравствуйте, скажите как можно отредактировать окно приветствия ??? (цвет, смещение в другую сторону, удаление)
|
Лександер, На файле хостс, может стоять атрибут "только чтение" и тогда с ним ничего не сделаешь, сам с этим сталкивался...
|
Цитата:
Цитата:
|
Цитата:
|
помогите создал инсталятор при расспаковке выдаёт ошибку Неверно задан входной файл для ISArcExtract!
|
|
Devils Night, насколько я понял он загружает файл который есть вносит изменения и сохраняет полученный файл как то так
|
Задание своего значения требуемого места на диске.
Есть ли противоположное параметру "ExtraDiskSpaceRequired"? В секции "[Setup]" есть параметр "ExtraDiskSpaceRequired", который позволяет "накрутить" увеличить реально-требуемое свободное место на ЖД... А если МНЕ НАОБОРОТ НУЖНО УМЕНЬШИТЬ... к примеру, во время установки у меня копируются/создаются "временные файлы", которые сразу же удаляются... и места требуется намного меньше. Но установщик считает размер всего упакованного в него... Или как задать своё значение требуемого места на ЖД в "стандарте"? Есть много вариантов, но они только на увеличение: если места не хватает (в соответствии с заданным значением), то кнопка "Далее"/"Установить" не активна. А если хватает (в соответствии с заданым значением), то "пропускает", НО ДАЛЬШЕ ПОЯВЛЯЕТСЯ "СТАНДАРТНОЕ ОКНО" с предупреждением, что места не хватает! Это конечно, не страшно, установку можно продолжить, НО пользователя, это может смутить. Как его убрать и/или "подкорректировать стандарт"?! Я ЗАДАЮ, ЧТО: Требуется, к примеру, 6 ГБ (а содержимое весит около 8 ГБ), если у пользователя есть 6 ГБ (а 8 ГБ, к примеру нет!), то кнопка "Далее" активна, но после нажатия выскакивает "стандартное" предупреждение! Я даже не знаю как оно называются - обычное стандартное предупреждение выскакивает: Недостаточно места на диске "Установка требует не менее ... свободного места, а на выбранном Вами диске доступно только ... Вы желаете тем не менее продолжить установку?" Можно его убрать? |
by_gangster, ты справочку видно не читал)
TROY Diamond, там надо к системным функциям вроде обращаться |
Цитата:
|
1. Почему не работает этот код для удаления сохранений?
Код:
[_Code_] Наверное, можно как-то "убить" процесс?! 3. Как с помощью [INI] или как-то по другому создать файл, текстовый и другие, НО ТОЛЬКО С ОДНИМ ЗНАЧЕНИЕМ "ВНУТРИ", БЕЗ параметра, никаких "Section", "InstallPath", НЕ надо! Только одно значение БЕЗ всего - в одну строчку, без кавычек, тире, двоеточий, типа открыл это файл, а там только: 5478549547hutjtiure84509fdjrereire943ukifju894390tgk4t984ij43m и всё больше ничего нет! 4. Есть ли способ "обновить" дополнить список файлов для деинсталляции? В процессе установки создаются файлы, о которых установщик "не знает", можно ли их как-то их "вписать"? Или же просто использовать секцию [UninstallDelete]? |
by_gangster, рекомендую прочитать справку к IsDone
|
А переименовать как нибудь можно, ну, на примере SaveToFile(HostFileName);?
Ну что то вроде: TROY Diamond, Ты вот это вот своё стихотворение хотя бы под спойлер спряч, а! |
Цитата:
Код:
function MoveFile(lpExistingFileName, lpNewFileName: PChar): BOOL; external 'MoveFileA@kernel32.dll stdcall'; Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
|
Код:
[.code] как бы переменная {app} не определенна. Как зделать выход из кода чтоб он не обрабатывался вообще если юзер нажимает отмену установки? Я пытался что-то сообразить типа if ExpandConstant('{app}') <> 0 then но не получается Вроде пустячёк, помогите скорее |
Пара замороченных вопросов
Как сделать такое?: И как сделать так чтобы после установки не было вот этого значка, который в нижнем правом углу?: |
Цитата:
Код:
procedure CurStepChanged(CurStep: TSetupStep); Цитата:
Цитата:
|
Цитата:
, на странице этого нет. |
Цитата:
|
Ребят подскажите в общем проблема в следующем, при первой установке программы происходит регистрация кодека и копирование файлов в системную папку и вроде как все проходит нормально. После удаления программы и потом повторной установке, инсталятор пишет (Installing XVID Codec...) ошибка, установка не выполнена. Я так понимаю при деинсталяции надо какието ключи прописывать как вообще это должно выглядеть???
Код:
[Run] |
Цитата:
|
Цитата:
taskkill идет не во всех редакциях венды, так что его надо тащить с собой как минимум в {tmp} или использовать этот код http://forum.oszone.net/post-1815172.html#post1815172 Serega, зобань Devil Mehanik, ч0 он тут камерцию разводит, нашел блин рынок, не он коммьюнити создавал, а смитану уже хочет снять |
Devil Mehanik, удалите свое сообщение о продаже, это запрещено правилами конференции (ОПК п.3.4), иначе это сделает модератор с возможными ненужными для вас последствиями. Цитата:
|
R.i.m.s.k.y
Пожалуйста не коверкайте русский язык. Товарищ Devil Mehanik отправлен на 2 недели подумать о правилах конференции. Не один раз предупреждал его. |
Доброго времени суток!
В PROCEDURE InitializeWizard; при выполнении некоторых условий мне необходимо перевести приложение на страницу wpFinished без отображения всех окон и без установки самого приложения. Это возможно? |
Цитата:
Gugle, думаю да, алгоритмически глобальной переменной присваиваем TRUE и через CurPageChanged отслеживаем примерно так, но могут быть подводные камни: Код:
[*C*ode] |
Цитата:
то да, а если без неё, то ничего не отображается |
Цитата:
Цитата:
|
Цитата:
Цитата:
|
Цитата:
А то хорошо говорить Цитата:
Тогда я вообще ни болта не рублю, что там вообще нужно. |
Цитата:
|
Цитата:
Ребят, а как вы привязываете кнопку к чему либо? Ну вот скажем на примере этого: |
Цитата:
В вкладке Properties, вы можете настроить свойства вашей кнопки. |
Помогите с кодом, пожалуйста.
При установке проги в папке назначения нужно удалить все кроме двух папок и трех файлов. Как получить список папок и файлов? рекурсия во вложенные папки не нужна. Заранее спасибо! |
Цитата:
Возможно лучше использовать не переход на страницу финиш (ну т.к. это геморно :) ), по выполнению условия, а "искусственно" нажать на кнопку "Отмена"? Тут правда хотелось бы нажать так, что бы пользователю не выводилось сообщение "Вы уверены что хотите выйти?". Или согласиться с выходом без участия пользователя. Откуда числа 513 и 514? Цитата:
|
Цитата:
числа 513 и 514 из шапочного примера "Нажать кнопку Далее" |
Цитата:
|
Цитата:
Цитата:
|
|
Цитата:
|
Цитата:
Попробую объяснить: Когда мы создаем какой-нибудь элемент на форме, например кнопку, это получается просто тупая кнопочка, которая при нажатии ничего не выполняет. А что бы она что-то делала при нажатии, нужно написать процедуру, в которой указать, что делать кнопчаге при нажатии, а потом, присвоить кнопчаге, на событие onClick, выполнение данной процедуры. Это касается всех создаваемых вами элементов на форме. Наглядный пример выше: вы создали элемент TFolderTreeView, но не создали процедуру, в которой нужно указать, а что же будет происходить при нажатии на определенную папку или диск. |
Как добавить дополнительные значения с различными вариантами названия одного и того же приложения в этот код:
Код:
function InitializeSetup(): Boolean; Мне нужно, чтобы мой установщик при запуске находил уже ранее установленное приложение, НЕ только моим, НО и другими установщиками. К примеру, я и кто-нибудь ещё назвал приложение "My Program", его-то мой установщик найдёт, а если кто-то назвал его "My Prog" или воспользовался "AppId"! Как быть, есть ли решение? Если ничего другого "общего" нет! Нет в реестре "InstallPath"/"InstallDir". "My Program" - это так, название уникальное, так, что случайного удаления какого-то другого приложения НЕ произойдёт! МОЖНО ЛИ ДОПИСАТЬ "My Prog", "My Prog by...", "My Prog v2...", "{BB78D015-6860-433F-BF31-2E0AA5E7F922}" и т.п. в этот код ил и как-то по-другому. Чтобы установщик реагировал только на одно найденное существующее значени и не ругался если их вдруг будет несколько. |
|
Помогите! Сделал скрипт для музыки, как положено:
Но после компиляции и запуска установщика появляется ошибка "Runtime Error 0012FD8C". Я думаю, что для устранения этой ошибки требуется RuntimePack. Я прав? |
Дорогие форумчане! С наступающим Новым 2012 годом Вас! |
alert30, ошибка запуска смотри процедуры
|
Цитата:
|
Цитата:
Еще момент - скрипт, написанный в расширенной версии Инно, не скомпилируется в стандартной версии компилятора - это тоже необходимо учитывать. Уважаемые форумчане и Inno Setup - скриптоваятели - С наступающим Новым Годом, уважаемые коллеги! |
Лександер, я учту, но а какой программой, чтоб скрипт заработало (установлено InnoUltra) или ничего???
Цитата:
|
alert30,
Цитата:
Цитата:
|
Цитата:
|
Цитата:
А то получается я пишу через код, что к примеру требуется 8 ГБ, а потом вылезает табличка, что места не хватает и нужно гигов 15... Что пользователь подумает? Цитата:
Иначе бы использовал бы [UninstallDelete]. |
1. Мне нужно наложить картинку на все диалоговые окна инсталлятора, КРОМЕ ПЕРВОЙ И ПОСЛЕДНЕЙ. А здесь есть на все окна... и только на первую и последнюю.
2. Как создать файл, текстовый и другие, НО ТОЛЬКО С ОДНИМ ЗНАЧЕНИЕМ "ВНУТРИ", БЕЗ параметра, никаких "Section", "InstallPath", НЕ надо! Только одно значение БЕЗ всего - в одну строчку, без кавычек, тире, двоеточий, типа открыл это файл, а там только: htuifgvifgj4575489jgfkgfmgf765авроршгщ и всё больше ничего нет! 3. Мне нужно, чтобы мой установщик при запуске находил уже ранее установленное приложение, НЕ только моим, НО и другими установщиками. Вот с этим вариантом можно что-нибудь сделать: Код:
var 4. Мне нужно как в этом коде, только "универсально", чтобы "всем подходило": Код:
function InitializeSetup(): Boolean; Как из секции [code] запустить приложение, файл, батник и т.п. в тихом режиме, БЕЗ запроса, с правами Администратора и с "мнгновенным" удалением сразу же после того как действие будет выполнено? |
Всех с наступившим Новым Годом!
Подскажите пожалкуйста. При указывании AppId: Код:
#define AppId "Программа" Код:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Программа_is1 |
Цитата:
|
МИШАНЧИК, dracosha, это клеймо сделано специально. Если будет установлена другая программа с тем же AppId, в этом случае клеймо станет _is2
|
Доброго времени суток. Помогите, пожадуйста разобраться в проблеме.
Собственно стоит задача, во время удаления программы, спросить у пользователя разрешения на удаление некоторых файлов. Для этого я в секции [UninstallDelete] добавил строчку такого содержания: Код:
Type: filesandordirs; Name: "{app}\Data\"; Check: isDeleteSetting Код:
function isDeleteSetting: Boolean; Как можно исправить эту проблему? Версия Inno Setup: 5.4.3 Полный код примера: http://pastebin.com/XKvSLsdc |
kangreon,
наверное так: Код:
[*C*ode] Код:
[*C*ode] |
R.i.m.s.k.y., Спасибо за подсказку. Сейчас попробую Ваш код.
Добавление проверки в мой изначальный код не помогло. Проблема остается. Функция isDeleteSetting не вызывается во время процесса удаления. Возможно это баг компилятора... |
kangreon, именно поэтому я привел рабочий код
|
Цитата:
Код:
for i := 0 to LoadString(hInst, 5386, buf[0], 255)-1 do strVerb := strVerb + Chr(Buf[i]); Второй вопрос - никто не думал над тем, как удалять этот ярлык при деинсталляции? |
здраствуйте, помоги пж! как сделать эксклюзивный инсталлятор? ( ну там с чёрным фоном и картинкой )
|
KaStieL139, вот скрипт скина и отображения фоновых картинков, насчет черного фона треубется ISSkin и изменения (выделено черным).
|
Alert30 спасибо большое, а можешь написать что нужно делать в IS Skin? заранее спасибо!
|
|
Люди подскажите пж что вот здесь писать
мне в этом скрипте почти всё непонятно, незнаю где что прописывать! мне хотябы что бы в инсталляторе была картинка! а остальное не важно! а как сделать не знаю(((( |
KaStieL139,
Цитата:
Цитата:
P.S. В общем этот общий готовый скрипт, должен получится так. P.S.S. Если что выкладываю готовые скрипты от BadBoy: http://rghost.ru/35718036 |
Цитата:
Цитата:
|
я в формате cjstyles ничего не нашёл((
|
Цитата:
Код:
or i := 0 to LoadString(hInst, 5387, buf[0], 255)-1 do strVerb := strVerb + Chr(Buf[i]); В русскоязычной оси 5387 - Открепить от &панели задач |
|
Цитата:
Код:
... |
El Sanchez, так-же:
Компилю на юникоде, замена вызова LoadStringA на LoadStringW вообще дает ошибку невозможно загрузить длл Возможно. косяк системы - Скрипт Кастомного шрифта, у меня тоже не работает - виснет на оповещении системы. ПРичем, это косяк не инно - пробовал делать длл, и вызывать функцию из нее - результат аналогичный. |
El Sanchez, извиняюсь, но немного подправил ваш скрипт Закрепить ярлык на панели задач в Windows 7 (вариант №2).
Сделал в виде примера с кнопками... |
Serega, Лександер, спасибо за багрепорт, пофиксил скрипт для ANSI/Unicode:
|
El Sanchez, вы не много не поняли, а именно вы составляете название по одному символу, хотя достаточно вызвать функцию LoadString один раз и затем обрезать лишнее...
Посмотрите функцию GetDllResourceStr в моём сообщении выше. |
Цитата:
есть еще один подводный камень - т.к. сам инсталятор 32bit и создаваемый OLE тоже выполняется в 32bit-контексте, закрепить программу из нативной x64 папки по нормальному не удаётся - ярлык закрепляется, но запущенная программа отображается отдельной кнопкой, которую можно/нужно закрепить вручную |
Serega, проблема тут, теперь:
ПРимер El Sanchez, заработал. Общий пример както так: Цитата:
|
Цитата:
Цитата:
Цитата:
Цитата:
|
в шапке и на форуме иногда встречаются скрипты как получить список файлов и каталогов в указанной папке
неправильно, хотя иногда работает Код:
...if (FindRec.Attributes = FILE_ATTRIBUTE_DIRECTORY) and (FindRec.Name <> '.') and (FindRec.Name <> '..') then begin... Код:
...if (FindRec.Attributes and FILE_ATTRIBUTE_DIRECTORY = 0) and (FindRec.Name <> '.') and (FindRec.Name <> '..') then begin... |
Ктонить может подкрутить скрипт, чтоб та часть что касается возврата оригинальных файлов, запускалась только если выбран компонент "Game\Lokal\Backup", а та часть что отвечает за проверку на оставшыеся файлы, если выбран "Game\Full"?
|
Вложений: 1
Цитата:
|
Цитата:
Цитата:
Цитата:
|
Скрипт распаковки FreeArc вроде правильно поставил, но вот только несколько ошибок обнаружил. Вот аттачмент.
|
|
Цитата:
|
Подскажите пожалуйста как сделать так чтоб из архива freearc распаковывались только заданные файлы или папки?
|
Цитата:
Вот что имеется для примера: Код:
[Files] Пересмотрел весь архив скриптов и нашел только пример по распаковке, а нужна распаковка, замена и упаковка обратно. P.S. Забыл поздороваться. Всем привет и с наступающим Рождеством! |
Как добавить задачу в "Назначенные задания" - файл *.job в WINDOWS\Tasks? Как его "создать" в Inno?
Нужно, чтобы приложение запускалось с Windows и/или в опредёленное время. Ярлык приложения в "Автозагрузка" и/или в реестре НЕ подходит!!! Нужно, чтобы было "задание", т.к. оно связано с настройками программы. И чтобы оно устанавливалось ТОЛЬКО если пользователь его выберет при установке. |
Как при удалении проги (запуске деинсталлятора), проверить НЕ запущена ли она и автоматически закрыть её БЕЗ запроса, к примеру если она "сидит в трее", и продолжить удаление?
Аналогичный вопрос при установке - вдруг эта программа была уже установлена и сейчас запущена... |
Как ТОЛЬКО НА ПЕРВОЙ СТРАНИЦЕ использовать "большую картинку"? На всё окно, НО с сохранением всего текста его размера, шрифта и кнопок?
Вот, как здесь, например: |
Как сделать, чтобы когда приложение уже было ранее установлено и пользователь пытается устанановить его ещё раз, появлялось следующее сообщение:
Если приложение в данный момент запущено, то его автоматически закрывают... Если пользователь отказывается удалять приложение, то появляется следующее сообщение: и программа установки закрывается, установка прерывается... |
ВИДИМО ВСЕ ПРАЗДНУЮТ, КРОМЕ МЕНЯ?! УЖЕ 2 ЧАСА ПРОШЛО... с момента как я задал свой первый вопрос, НО не то, что никто НЕ ответил, так и вообще за это время никто больше ничего НЕ спрашивал!
ТАК ЧТО НЕ РУГАЙТЕСЬ И С ПРАЗДНИКОМ ВСЕХ!!! СПАСИБО ЗА ТО, ЧТО ЕСТЬ ВЫ И ВАШ ФОРУМ!!! Как использовать различные значения и записи реестра в секции Setup и не только? К примеру приложение идёт на нескольких языках и в зависимости от выбранного языка меняется, производитель, ссылки, техподдержка, версия, ярлыки, записи реестра и т.п. (AppPublisher, AppPublisherURL, AppSupportURL, VersionInfoCopyright, LicenseFile)? Тот же вопрос про язык сообщений в секции Code. Как выводить сообщения на нескольких языках, в зависимости от языка системы например? |
TROY Diamond, Да тебе не задрало писать стоко?????
|
Цитата:
|
Цитата:
Код:
[Languages] |
nik1967, он пишит в зависимости от языка системы типо если англ система то сетуп англ както так...
|
TROY Diamond, CustomMessages вам в помощь:
Код:
[Setup] |
Цитата:
1. Как при удалении проги (запуске деинсталлятора), проверить НЕ запущена ли она и автоматически закрыть её БЕЗ запроса, к примеру если она "сидит в трее", и продолжить удаление? Аналогичный вопрос при установке - вдруг эта программа была уже установлена и сейчас запущена... 2. Как сделать, чтобы когда приложение уже было ранее установлено и пользователь пытается устанановить его ещё раз, появлялось следующее сообщение: Если приложение в данный момент запущено, то его автоматически закрывают... Если пользователь отказывается удалять приложение, то появляется следующее сообщение: и программа установки закрывается, установка прерывается... 3. Как ТОЛЬКО НА ПЕРВОЙ СТРАНИЦЕ использовать "большую картинку"? На всё окно, НО с сохранением всего текста его размера, шрифта и кнопок? Вот, как здесь, например: |
Цитата:
Код:
MsgBox(CustomMessage ('MsgBoxText'), mbInformation, MB_OK); // только текст Код:
en.MsgBoxText=It's alive! |
Почему на MainForm не срабатывает botva2.dll?
|
Здравствуйте, подскажите пожалуйста:
Делаю лого с помощью этого скрипта: Я хочу чтобы оно исчезало к примеру после прохода экрана приветствия, чтоб глаза не мозолить. Это возможно? И главное как? |
Цитата:
Код:
function InitializeSetup(): Boolean; Код:
procedure RD(Dir:string); 2. Как организовать проверку "основной" папки и удалить её если она пустая? Например, сохранения лежат в "Мои документы" -> EA Games. Если, кроме сохранений этой игры в "EA Games", больше ничего нет, то её нужно удалить. Зачем она пустая будет висеть на винте?! Поясгите про параметр "AppMutex", как его применять? Как раз нужна проверка на наличие уже установленного, а тем более запущенного приложения. С возможностью его закрыть БЕЗ ЗАПРОСА и предложением удалить! Как добавить задачу в "Назначенные задания" - файл *.job в WINDOWS\Tasks? Как его "создать" в Inno? Нужно, чтобы приложение запускалось с Windows и/или в опредёленное время. Ярлык приложения в "Автозагрузка" и/или в реестре НЕ подходит!!! Нужно, чтобы было "задание", т.к. оно связано с настройками программы. И чтобы оно устанавливалось ТОЛЬКО если пользователь его выберет при установке. |
leshcat, добавь это вконце:
Код:
procedure CurPageChanged(CurPageID: Integer); |
|
No4noylis or All
Спасибо, работает! Еще два вопроса: 1.А как на кастом пейджах сделать, чтоб оно появлялось? Ввод кастом пейджа делался так: 2. Как сделать переход на страницу Выбора Директории по клику кнопки? А если такая же кастом страница? |
Цитата:
|
Извините за тюпые вопросы.
Какими командами можно: а) прервать итеракцию цикла и перейти в следующую итеракцию? б) прервать цикл полностью и продолжить дальше по телу функции? в) прервать выполнение функции в заданном месте? |
|
Цитата:
Цитата:
|
Цитата:
|
Доброго времени суток!
Скажите пожалуйста как достучаться до YesRadio и NoRadio (TNewRadioButton) расположенных на странице FinishedPage? |
Както так:
Код:
procedure InitializeWizard; |
Цитата:
1. "Основная папка" всё-равно ОСТАЁТСЯ, даже если она пустая: Мои документы -> My Company -> My Game Удаляется ТОЛЬКО "My Game", а как удалить и "My Company" если в ней больше ничего нет? 2. Можно ли окошко с запросом "отдельно вынести", чтобы оно появлялось раньше окна программы, а не во время процесса деинсталляции, а также убрать "Деинсталляция"? Либо заменить эту надпись на "Удаление профилей" и т.п. Цитата:
И вообще этот код можно ли как-то "усовершенствовать", чтобы можно было несколько вариантов названия приложения в "Uninstall" написать. Приложение может по-разному называться и в реестре у кого-то будет "{7216871F-869E-437C-B9BF-2A13F2DCE63F}_is1", а кого-то просто "My Program_is1"?! Цитата:
Может кто-нибудь ответит?!!! Как добавить задачу в "Назначенные задания" - файл *.job в WINDOWS\Tasks? Как его "создать" в Inno? Нужно, чтобы приложение запускалось с Windows и/или в опредённое время. И чтобы оно устанавливалось ТОЛЬКО если пользователь его выберет при установке, на странице "Дополнительные задачи". |
Цитата:
|
Цитата:
|
По посту 587 нет мыслей ни у кого?
|
Цитата:
Код:
procedure CurPageChanged(CurPageID: Integer); Цитата:
Код:
Page1 := CreateCustomPage(wpWelcome, 'Main Menu', 'Please choose desired action: '); |
@YURSHAT
нет нет, на кастомной странице как видно по коду расположена кнопка. Хотелось бы, чтобы при Button_Install.OnClick := @ButtonOnClick Происходил переход, например, на страницу выбора папки или, опять же к примеру, на кастомный page2. |
Цитата:
Цитата:
|
Подскажите пожалуйста, возможно ли реализовать значки на кнопках в innosetup ?
|
Обновите пожалуйста ссылку на русскую справку к версии 5.4.2
|
PC-USER, да гдето был пример от рестулз
|
Вложений: 1
PC-USER, Смотри во вложении. Картинки на два положения - нажата-ненажата. насколько я понял - возможны 4 положения - свободна, наведена, нажата, неактивна.
Цвет фона - очень строго, именно этот цвет заложен как прозрачный. Цитата:
Во вторых, чтобы не нарушать правила и не убивать всякое желание помогать тебе - прячь мемуары под спойлер - в правилах форума это тоже наверняка есть. Цитата:
Скачать. |
Цитата:
|
@YURSHAT
А продублировать кнопку назад\вперед можно? |
Цитата:
Цитата:
|
Лександер, Большое спасибо :)
|
Цитата:
Почему НЕ компилируется этот скрипт, что здесь не так? Цитата:
|
Цитата:
|
Подскажите, как написать скрипт, для включения файлов в инсталлятор.
Суть такова. В разных папках лежит много файлов. Структура папок такова \папка\346\ \папка\347\ \папка\348\ \папка\....\ \папка\362\ в каждой папке с номером лежит разное количество файлов вот с такими именами: 347-0001.sql 347-0002.sql 347-0003.sql .... 349-0001.sql 349-0002.sql ... ... ... 362-0001.sql 362-0002.sql 362-0003.sql 362-0004.sql и т.д. все эти файлы нужно "зашить" в инсталлятор. Это SQL-скрипты для обновления базы на клиентской стороне. Количество папок может быть разное. Для одного клиента с 346 по 362, а для другого с 350 по 362. В зависимости от версии установленной программы. В итоге все эти файлы будут при установке у клиента скопированы в одну папку, т.к. имена файлов разные, то проблем нет в этом плане. Так вот, как мне скриптом собрать эти sql файлы и зашить в инсталлятор? Сейчас сделано не очень красиво и много рутины: Код:
#define verTo "347" и потом смотрю какие файлы нужно раскомментировать или закоментировать. А если папок около 10-15, то на это уходит много времени :( и приходится создавать отдельный инсталлятор для каждой папки, а хотелось бы один для всех. Заранее благодарен |
Akella2007, ... э э э ...
Код:
#define verTo "347" |
R.i.m.s.k.y., выдели звездочку, а то и я-то не сразу понял :)
|
Ребят что нужно удалить из этого скрипта чтобы остался только внешний вид инстала http://rghost.ru/24985741
|
Всем привет)
Подскажите пожалуйста или дайте примерчик "Как сделать, что-бы картинка отображалась в компонентлисте? В jpg или PNG формате"? Заранее спасибо. |
ntrx, botva2 тебе в помощь))
wertulll, ты бы сначало написал что оставить надо) |
:) valyok666, ну как обяснить я пока ещё в этих делах новичёк извеняюсь :) мне нужно чтобы в этом скрипте остался только код на внешний вид инсталятора чтобы он работал без arc.ini , unrar.dll и так далее. Я хочю его самим inno setup запаковать .
ну вод может так понятней будет :) OutputBaseFilename=setup Compression=lzma/ultra64 ;DiskSliceSize=1566000000 ;DiskSpanning=yes ;SlicesPerDisk=4 SolidCompression=yes чтобы остались кнопки , папка , тени , картинка , шрифт ну вобщем только внешний вид без дополнительных файлов разпоковщиков |
wertulll, щас посмотрю)тоесть убрать ISDone и всё да?
|
ну да
|
Извеняюсь за оффтоп, но... те кто делал репак на Ведьмак 2. Убийцы королей, напишите пожалуйста в ЛС
|
valyok666, я знаю что ботва..
Я не повню, что нужно изменить , чтоб не БМП было, а другой формат, если можно ПНГ. Вот кусочек скрипта. Код:
ExtractTemporaryFile('Img.bmp'); |
|
valyok666, вечер добрый ну как не смотрел мой скрипт
|
Цитата:
|
Цитата:
|
Подскажите пожалуйста как установить .inf файл(т.е. как бы правой кнопкой на нём-Установить)? После установки он(.inf) находится в папке с программой и нужно его, я так понимаю запустить из секции [Run], чтоб он установился, а как не знаю.
|
МИШАНЧИК, первая же ссылка в яндексе
как-то так ну может с кавыками перемудрил только Код:
[Run] |
R.i.m.s.k.y., большое спасибо, попробую.
|
Цитата:
Подскажите, пожалуйста, а как добавить в этот код несколько вариантов названия приложения: В Вашем примере ТОЛЬКО ОДИН ВАРИАНТ: "Inno Setup QuickStart Pack", а если приложение будет называться как-нибудь по-другому? Например, "Inno Setup QuickStart Pack v." или "Inno Setup QuickStart Pack (Сборка такая-то...)" "Inno Setup QuickStart Pack от Васи Пупкина..." и т.п. Куда и как записать все возможные варианты названия этого приложения? Мне нужно, чтобы при запуске моего установщика, находилось это же приложение, - если оно было установлено, как чужими, так и моим инсталлятором. КАК БЫ ОНО НЕ НАЗЫВАЛОСЬ (Все варианты названий, я напишу... Вы главное скажите куда и как)!!! Дайте, кто-нибудь полный скрипт с использованием значения "AppMutex", пожалуйста! |
Цитата:
Цитата:
Практика |
Ребят подскажите пожалуйста как в этом скрипте поменять цвет прогресбара на цвет по умолчанию тоесть зелёный а не жолтый как сейчас. ДВА вечера на него уже убил но не как не выходит :( очень надо помогите пожалуйста Вот сам скрипт
А вот Сomponets.iss к нему |
wertulll, в коде, что ты привёл, нет упоминаний о WizardForm.ProgressGauge (или о каком либо ProgressBar'е). В твоём скрипте есть строка о PlayWith.Texture.iss. Может быть там? А вообще, если прогрессбар дефолтный, то изменить его цвет можно закомментировав строку
Код:
WizardForm.ProgressGauge.State:= npbsPaused; Код:
WizardForm.ProgressGauge.State:= npbsNormal; |
nik1967, cпасибо за разъеснение вот этот скрипт с файлами http://inno.at.ua/load/utility/game_...s_ex/9-1-0-176
|
wertulll, я оттуда скачать не могу - нет ссылки на скачивание. Просто запости здесь содержание PlayWith.Texture.iss.
wertulll, Цитата:
|
вот
|
вот архив
|
wertulll, моя невнимательность. Ну как я и писал выше - найди в основном скрипте строку
Код:
WizardForm.ProgressGauge.State:= npbsPaused; Код:
WizardForm.ProgressGauge.State:= npbsNormal; |
СПАСИБ!!! тебе огромный всё вышло :) это я так понял что цвет можно любой вкатить?
|
Цитата:
Код:
TNewProgressBarState = (npbsNormal, npbsError, npbsPaused); |
Как добавить "задание" в "Назначенные задания" - файл .job (Windows\Tasks)?
|
Цитата:
А вообще - неужели трудно почитать справку? ее уже и на русский перевели вполне грамотно, по моему. |
1. Значение "AppMutex", - дайте, пожалуйста, полный скрипт с его использованием!
Читай справку, типа скажете... Вот, что это такое и куда вставлять, - я вообще не понял: CreateMutex(nil, False, 'MyProgramsMutexName'); CreateMutex(NULL, FALSE, "MyProgramsMutexName"); 2. "Определение класса приложения", как это как его определить? Что это: Как мне название своего приложения записать и куда? Мне нужно, чтобы если приложение запущено появлялось сообщение "Один экземпляр уже запущен", с предложением его закрыть. А ещё лучше, чтобы приложение ЗАКРЫВАЛОСЬ САМО - ВООБЩЕ БЕЗ ЗАПРОСА, как при установке, так и при удалении... |
Цитата:
СПАСИБО! Да, возникают может с остальными вопросами поможете?! Цитата:
|
Где взять дополнительные языки: Украинский, белорусский, например?
и почему когда я добавляю множество языков в секцию Lahguages, при установке можно выбрать, только Английский и русский? |
Есть такая задача - перепаковать дистрибутив flylinkdc++(FlylinkDC-x86-r407-build-8559) c тем , чтобы удалить из него ненужный Yandex Bar . Распаковал его c помощью Universal Extractor 1.61 , нашел в папке tmp YandexPackSetup-flylinkdc2-20111031.exe - его удаляем . Но вот проблема , при попытке перекомпилировать (использую Inno Setup v 5.4.2 RUS Portable) ругается Required function or procedure 'Postfix' no found в строке AppName=FlylinkDC++{code:Postfix| }
Ссылок на postfix немало . Что-то внятное по поводу где взять функцию postfix точно подходящую в данном случае в Сети не нашел. Может опытные товарищи будут так добры направить на путь истинный ? |
olmak, Postfix - это процедура из секции Code, она вытаскивается в лучшем случае бинарником
короче никак |
olmak
Гугл Код:
function Postfix(Separator: String): String; |
Цитата:
А на последней странице?! Там ведь должно быть как "обычно" или же эту картинку надо "подгонять"! Нужно, чтобы, либо эта же картинка была, либо "обычная" (164x314) А то сплюснуто получилось - используется большая картинка, но подогнана под стандарт. НАВЕРНОЕ, НАДО, НАОБОРОТ, ЧТОБЫ ОБЫЧНАЯ, "ТАК И БЫЛА", А "БОЛЬШАЯ" - ПОДГРУЖАЛАСЬ, НАПРИМЕР ИЗ TEMP... Или одну и туже большую, но в начале и в конце и надо учитывать, что в конце всё "по-другому" и "Запустить программу" ещё есть! |
Цитата:
Делай так-же, как на первой сделано. Для этого есть абсолютно все, что тебе нужно в приведенном коде. |
Цитата:
TROY Diamond, по всей видимости вы решили освоить Inno Setup наскоком за несколько дней, но уверяю вас, так у вас ничего не получится. Начните с простых примеров, сначала без использования секции [Сode], затем разобрав и поняв их, переходите к более сложным примерам... На данный момент, я так понимаю, у вас в голове каша из-за того, что вы прыгаете с одного на другое, даже не разобравшись как работают предложенные вам варианты. P.S. Цитата:
Пример с использованием Schtasks.exe Код:
procedure InitializeWizard(); |
Цитата:
|
Serega
Спасибо хоть кто-то откликнулся, а не пнул. Мне нужно, чтобы при входе пользователя в систему запускалась прога и сворачивалась в трей. Автозапуск... Может и со СТАРЫМ вопросом поможете - КАК отключить сообщение о нехватке места на ЖД, Вы говорили, что можно как-то автоматом нажать "Да" ... А читать я читаю, только вопросов ещё больше появляется! |
ребят может ктонибуть удалить весь ISDone из этого скрипта ? помогите чтото не выходит
|
Цитата:
Запомните одну золотую истину, никто ничего за вас делать не будет! Цитата:
|
Цитата:
А на обычной версии НЕТ способа... По поводу "Назначенных заданий", - стал разбираться, столкнулся с проблемой, КАК задачу "вынести галочкой", на страницу "Дополнительные задания" (там же где ярлыки предлагается создать). Нужно, чтобы если пользователь оставить галочку (по умолчанию она должна стоять), то задача добавится и прога будет загружаться при входе пользователя в систему и сворачиваться в трей... |
Цитата:
|
Цитата:
Ты лично мне через ЛС парил моск целую неделю, и не говори, епт, что впустую! Ответы я тебе давал на что знал, просто ты настолько ленивый, что не можешь разобраться даже с Task! Цитата:
И после этого ты, блеатЪ, заявляешь хоть кто-то откликнулся, а не пнул У модераторов прошу прощения. Можете конечно отправить меня в баню, но вместе с этим вот троллем. Все его сообщения - скрытые оскорбления и сексуальное насилие над моском. |
да замудрёный скриптец так и не выходит :sorry:
|
wertulll, глянул краем уха
если исдоне удалять - там ничего не останется |
вот и я к томуже мнению пришол
я им просто не пользуюсь мне вид инстала нравится |
|
вот здесь всё http://rghost.ru/24985741
|
|
ну что могу сказать круто!!! :good: 4 человека до тебя сказали что это невозможно :) да и сам не один час над ним медитировал.
спасибо!!!тебе большое |
R.i.m.s.k.y.
И кто ещё хамит?! Я ни одного бранного слова, НЕ сказал, тем более в Ваш адрес... За то, что Вы мне помогали Вам отдельное спасибо и я Вам это неоднакратно говорил. Только Ваше сквернословие - Вас совершенно не красит. Троль уходит... |
искал. но толком не нашел. А вопрос такой возник.
Вот есть флаг comparetimestamp - позволяет сравнить дату создания извлекаемого файла и которого он накрывает. У этого сравнения много недостатков - все написано в справке. А надо бы сравнить даты изменения. Покопавшись немного решил, что можно сравнить даты штатными средствами windows через вызов bat или своей проги какой-нить. И поэтому возникла проблема как "достучаться" до файла в пакете. До файла который уже есть на диске я нашел способ добраться. надо получить только полный путь, указывающий на "реальный" файл ну или хотябы уже сами даты именно этих файлов. А уж как извлечь дату из них, сравнить и выбрать я сам решу. Подскажите хоть что-нибудь. |
Ребят глянте если не трудно :) вот собрал скрипт из двух скриптов чисто пока один вид фриарк ещё пока не прикручивал
всё работает нармально компилирует . но вот чтото зараза длиный получился может чего лишнего впихнул :) глянте если не трудно да ещё не показывает сколько места займёт после установки в скрипте вроди всё указано? |
Цитата:
|
да я к тому что там кроме как для внешнего вида в коде та и нет нечего
|
Подскажите, пожалуйста, как в инно задействовать механизм хранения версий библиотек и отката при деинсталляции
Конкретно надо следить за версиями avisynth.dll Заранее благодарю! |
хотелось бы реализовать следующее
устанавливаются например 3 компонента из установщика half life 2 half life 2 episode one half life 2 episode two уникальные файлы для каждой игры каждый в свою папку общие файлы для всех файлов в общую - корневую например pf/Orange Box/half life 2/run_hl2.exe pf/Orange Box/half life 2 ep1/run_hl2_ep1.exe pf/Orange Box/source 2007 binaries 2.gcf pf/Orange Box/source models.gcf итд логика такая - Autorun с функцией поиска через реестр узнаёт куда установилась игра (думаю нужно в основном установщике в секции [Setup] задействовать параметр AppId=) - потом, в директории игры ищет например app/half life 2/run_hl2.exe, и если он есть то появлялась кнопка запустить игру .Eсли его нет то кнопка неактивна или её нет желательно что бы этот Autorun был бы не частью основного установщика и не было проблемы, что игру удалили вручную, а он предлагает запустить вместо того чтобы установить в коде для описания компонентов видел функцию поиска файла может подобная функция и нужна function IsComponent3:boolean; var sz:Integer; s:string; begin Result:=True; begin If (FileSearch('manual.txt', ExpandConstant('{src}\main'))='') then Result:=False end; end; есть уже почти готовый на одну игру но адаптировать его мне не позволяет незнание паскаля [Setup] Код:
SourceDir=. заранее спасибо за помощь! |
Цитата:
Код:
[Files] |
Всем доброе утро у кого есть такой инсталлятор http://imageshack.us/photo/my-images...11ecfcb9b.jpg/ если есть дайте пожалуйста!
|
spaiders, Его сделать самому не трудно)
|
Цитата:
|
spaiders, так тебе здесь чисто даром никто писать скрипт не будет....здесь помогают и объясняют
|
Цитата:
|
spaiders, если хочешь такой перепакованные инсталляторские скрипты, как на скрине, пиши в PM, скину.
upd 21:00: Добавлю, что каждый пользователь выкладывает скрины по перепакованных инсталляторов известных RePack групп; то этот супер RePack содержит много скриптов, содержаний и изменений. |
El Sanchez, Спасибо огромное! Как же я сам не догадался вызов winAPI сделать, а то еще программистом себя называю. Дату файла из пакета я собираюсь узнать так: в качестве DestDir будет указана %TEMP%, уже от туда с использованием того же вызова winAPI будет извлечена дата, а затем из темпа файл отправится либо в {app} либо в /dev/null)) в соответствии с его актуальностью. Остается уповать на сохранность атрибута даты при всех распаковках\запаковках. Он ведь сохраняется?
|
Цитата:
Код:
[UninstallDelete] Цитата:
|
Добрый день.Не подскажите что нужно сделать в скрипте ISDone чтоб были распакованы указанные файлы из архива FreeArc(Не все, а только один или несколько).Заранее спасибо.
|
LinkOFF, Прочитать справку к IsDone. Внимательно!
|
мне никто не поможет немного отредактировть http://forum.oszone.net/post-1843626-672.html ???
Appid=ob пробовал вписывать свой ключ if RegQueryStringValue(HKLM64, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\ob_is1','Install Dir', AppPath) then или if RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\ob_is1','Install Dir', AppPath) then менял shift.exe на run_hl2.exe добавлял path + '\half life 2' и Exec(path + '\half life 2\run_hl2.exe' ничего не видит мне хотя бы один пример для одной конпи с поиском через реестр, последующим поиском файла и как результат - запуском приложения |
Цитата:
Код:
[Setup] |
El Sanchez,
спасибо конечно , но к сожалению кнопка серая сделал так (хотя скорее всего ошибся где-то) Код:
по сути кнопка "играть" появляется вместо кнопки "установить" я её на 100 пикселей влево сдвинул вот целиком http://rghost.ru/36146504 |
Цитата:
Цитата:
В общем, переделал ваш вариант: http://rghost.ru/36156009 |
Подскажите,
Вводится кнопка about: CancelButton := WizardForm.CancelButton; AboutButton := TButton.Create(WizardForm); AboutButton.Left := WizardForm.ClientWidth - CancelButton.Left - CancelButton.Width; AboutButton.Top := CancelButton.Top; AboutButton.Width := CancelButton.Width; AboutButton.Height := CancelButton.Height; AboutButton.Caption := '&About...'; AboutButton.OnClick := @AboutButtonOnClick; AboutButton.Parent := WizardForm; Как сделать так, чтобы она отображалась только на Welcome page? |
Цитата:
Код:
Procedure CurPageChanged(CurPageID: Integer); |
El Sanchez,
спасибо, что помогаете заработало объединить кнопку "установить" и "играть" задумка хорошая, скажите пожалуйста! А можно сделать, что бы запускался не run_hl2.exe, а hl2.exe с параметрами Run_hl2.exe это бывший батник с параметрами, кторый можно использовать, но лучше (если это возможно) сделать как у меня в секции RUN (например Parameters: -steam -game hl2 -appid 220) по сути будет проверяться наличие одного и того же hl2.exe, но в различных директориях уже перечитал всю ветку Inno Setup "помощь и советы часть 2", но настолько не продвинулся , что б всё самостоятельно реализовать (спасибо за картинку :), но Orange Box это внутреннее название. У меня сортировка по версии движков идёт. В реале "Source Engine 15" sp (без тим фортресс)) выкладываю скрипт целиком со всем прилагающимся, если нужно http://rghost.ru/36163770 http://rghost.ru/36164295 http://rghost.ru/36164749 http://rghost.ru/36165097 http://rghost.ru/36165223 оставил только экзешники и батники - для проверки запуска хватит, но игра не запустится, вылетит с ошибкой нехватки библиотеки |
Здравствуйте уважаемые репейкеры! Помогите, пожалуйста, решить слейдующую проблему: У меня оснавные файлы распаковываются freearc-ком в окне inno. FreeArc распаковывается перед inno setup-ом (для того, что-бы секция run выполнялась после фриарка), но из-за этого неработает скрипт со слайд шоу в окне инсталляции(слайды не распаковываются, ведь начинает работу первым FreeArc)! Вопрос- как сделать, что-бы слайды распаковывались сразу после запуска инсталлятора? Вот скрипт:
Заранее спасибо!!! :( Модератор: Пользуйтесь тэгами hide и code. В следующий раз горчичник за такие простыни... |
nik1967,
Говорит, что переменная неизвестна, но она описана: AboutButton, CancelButton: TButton; ? |
leshcat, ну, как бы это не мой косяк. Работает всё отлично. Да и азы это. ничего сложного.
Скорее всего переменная описана в какой то конкретной процедуре. Вынеси описание под [_Code] |
SARATOVSKY,
если нужно распаковать картинки первыми, то напиши их первыми в секции файлов, а потом уже саму unarc.dll и CallBack.dll файлы в секции файлов распаковываются сверху вних тоже самое относится и скеции RUN попробуй |
nik1967,
Да, спасибо, вы правы, описание было внутри процедуры, я ступил. |
Кто нибудь подскажет, как обойти UAC на W7? Мне товарищ сказал что можно, у него для этого DLL-ка валяется, но под неё скрипт надо писать, на всякий пожарный её прикрепил, мож кто ладу даст.
Без этого изврата всяких там дллок можно как то обойтись? Цитата:
Цитата:
UAC.rar |
Цитата:
|
Цитата:
И не могли бы мне помочь с распаковкой архивов в зависимости от выбранных компонентов. Все перепробовал, но ничего не получается.Заранее спасибо! |
подскажите пожалуйста как изменить вид страницы компонентов чтобы я мог сам сделать шрифт написаного там и расположение
Цитата:
где 1 это номер компонента по разным арк архивам расфасуй руский в отдельный архив английский в отдельный и все.true замени на false чтоб архив после распаковки не стирало. я так обхожусь все работает как часы если нужен реестр то так Components:text\rus; Root: HKCU; SubKey: Software\Valve\Steam; ValueType: string; ValueName: Language; ValueData: russian; Flags: uninsdeletevalue uninsdeletekeyifempty |
LinkOFF,
Код:
if not ISArcExtract ( 0, 0, ExpandConstant('{src}\data.arc'), ExpandConstant('{app}'), 'rus', false, '', '', ExpandConstant('{app}'), notPCFonFLY {PCFonFLY}) then break; |
Цитата:
|
подскажите пожалуйста как изменить вид страницы компонентов чтобы я мог сам сделать шрифт написаного там и расположение
|
N00bak,
вот код меняющий весь шрифт на той или иной странице id страниц для изменения шрифта определённых лейблов, их расположения и размера на странице, ровно как и размера самой страницы рекомендую воспользоваться расширенной версией Inno от Restools (легко и удобно через GUI во вкладке "Редактор форм"), скачать который можно здесь http://forum.oszone.net/showthread.p...99#post1201499 или здесь http://innoultra.ru/ если нужно сделать одну из страниц уникальной (или все разные ), то это можно сделать по примеру кода "Прогрессбар в маленьком окне В левом нижнем углу" http://forum.ru-board.com/topic.cgi?...&limit=1&m=1#1 также тебе пригодятся "компоненты основных страниц" http://forum.oszone.net/post-1096943-634.html из шапки темы El Sanchez, спасибо за автозапуск версии 2 работает отлично и всплывающее меню даже лучше и удобнее четырёх отдельных кнопок ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,, подскажите пожалуйста как объединить два кода! знаний паскаля нет, а логики дальше не хватает для компонентов у меня есть панель с описанием (так называемый "CompDescText") вот оригинал и он же у меня в скрипте (только с константами описаний) http://rghost.ru/36219751 я его изменил для страницы задач и он тоже работает http://rghost.ru/36219742 вернее работал, пока я не начал их соединять в моём скрипте уже есть описание компонетов теперь хотел добавить описания и задач на станице задач сделал так (чёрным те места, которые я поменял и вставил) Script Joiner не помогает |
Цитата:
|
доброго времени суток, у меня проблема, как сделать так как на картинке??? (картинку оформлял я http://i29.fastpic.ru/big/2012/0130/...3500a70a12.jpg )
смысл заключается в том что у пользователя перед компонентами вылетает выбор режима установки для Standart пользователя и для Premium пользователя Для обоих вариантов вылетает список компонентов которые он не может выбрать (но может увидеть что они устанавливаются) и те которые может выбрать Они идентичны только в разделе Premium устанавливается еще одна строчка вот ниже код который я использовал для написания такого скрипта но не знаю как дальше писать |
Лександер,
соединил сделал как в инструкции в итоге получил дубликаты DeinitializeSetup1() и InitializeWizard1() и опять ту же ошибку Duplicate Idenifier выдаёт, когда доходи до строк function Script Joiner новый |
Johny777,
function enabledesc(TasksListHandle: HWND; DescLabelHandle: HWND; DescStrings: PChar): BOOL; external 'enabledesc@files:descctrl.dll stdcall'; function disabledesc(): BOOL; external 'disabledesc@files:descctrl.dll stdcall'; У тебя эти две функции зачем-то объявлены дважды. естественно они не могут быть объединены, поскольку они вызываемые извне. а жойнеру - ему по барабану на то, что ты элементарных вещей понять не хочешь. |
Лександер,
да это так сейчас без этих функций соединил, а потом дописал в Joined инструкцию по Джоинеру несколько раз перечитал прежде чем соединять. Не получается :( ну если у Вас соединилось, то дайте пожалуйста результат, а то я в тупике говорю ж паскаль не знаю а про внешние функции в инструкции не слова |
Можно ли как-то "обновить" список файлов деинсталлятора?
У меня в процессе установки создаются файлы, о которых установщик "НЕ знает"... Все эти файлы я записываю в секцию "[UninstallDelete]", а есть ли какой-нибудь другой способ? Вариант: НЕ подходит, т.к. в процессе использования приложения в папке установки, создаются файлы конфигурации, профили, настройки, которые если пользователь не хочет удалять, ДОЛЖНЫ ОСТАТЬСЯ! А данная команда удалит всю папку установки... И аналогичный вопрос, по поводу "этих файлов", - как их удалить если установка НЕ завершится или пользователь её прервёт? |
TROY Diamond,
идеальный для тебя вариант (сам использую) скопируй куда нибудь в конец секции CODE http://rghost.ru/36227252 если не были созданы файлы после установки в директории установки, то удалит всё если были созданы, то после удаления основных файлов появится окно со списком созданных после работы приложения файлов и галками можешь удалять отдельные ветки или некоторые файлы скрин-пример http://rghost.ru/36227488 не забудь испольвоать в секции удаления такую строку [UninstallDelete] Type: files; Name: {app} это часть Inno Setup Upgrade от Виктора Дробова |
Как в "родных" установщиках для игр из серии "S.T.A.L.K.E.R." реализованы проверка системных требований и вывод информации о винчестерах, через библиотеку "get_hw_caps.dll"?
Или это сейчас не актуально? Сколько смотрел на форуме - многие спрашивали... а кода я чё та так и не нашёл, предлагают другие варианты! |
TROY Diamond,
Цитата:
наткнулся когда листал предыдущие ветки этой темы писали здешние умы http://rghost.ru/36232050 в нём есть сис. требования они же есть и в шапке вот тебе ещё 2 решения на проверку сис. требований http://rghost.ru/36232112 |
Johny777
СПАСИБО ОГРОМНОЕ!!! Насчёт удаления файлов есть способ если установка прервана и БЕЗ "визуальности". За Сталкера отдельная благодарность!!! |
TROY Diamond,
за сталкера не мне спасибо а Serega и другим кто скрипт писал я его только сохранил себе, чтоб изучить и знаний набраться насчёт удаления проблем не вижу когда нажимаешь отмену идёт "откат изменений" во время которого удаляется всё что успело установиться хотя я и не пользуюсь модулем фриарка, но он тоже всё трёт при "Отмене" если ты завршил процесс, то вручную есть решение, что перед установкой проверят что в директории лежит и выдаёт запрс на "запустить" или "удалить" или "отмена" http://rghost.ru/36233810 |
Всем привет.
Помогите вот с этой проблемкой: Когда запускаю инсталл и высвечивается выбор языка, и когда я сразу закриваю этот выбор языка выдаёт такую ошибку: Заранее спасибо. |
ntrx,
кажется это из-за использования скина у меня та же ошибка используй автовыбор языка вот так ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ShowLanguageDialog=auto LanguageDetectionMethod=uilanguage ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, будет язык в соответствии с языком системы и не будет окна выбора языка при запуске инсталятора Из справки "При значении auto окно появится только в том случае, когда инсталлятор не найдет идентификатор языка." |
Цитата:
|
Цитата:
|
Мне както Лександер подсказывал код, но он как вариант не подходит!!!
а то что можно сделать такой как я показал это 100%, я видел в какойто из версий Klite codec pack |
lmiol, в твоем случае, без содания дополнительной страницы компонентов, и описания кучи условий, вариант только такой:
Цитата:
|
Цитата:
если что вот мой скрипт http://rghost.ru/36247630 |
Цитата:
|
Как правильно сделать, когда используешь несколько языков для установки, чтобы в зависимости от языка ОС, выбирался и язык установщика и сообщений?
А в некоторых скриптах видел "locale" вместо "uilanguage" + "ShowUndisplayableLanguages=yes": P.S. СКОЛЬКО БЫ Я ЯЗЫКОВ НЕ ЗАДАЛ В "Languages", при "ShowLanguageDialog=yes, отображаются только 2 Английский и Русский, Что не так? ГДЕ ВЗЯТЬ БЕЛОРУССКИЙ И УКРАИНСКИЙ ЯЗЫКИ ДЛЯ УСТАНОВЩИКА?! |
Есть ли какая-нибудь принципиальная разница при разбиении на части между "setup-1.bin", "setup-2.bin", "setup-3.bin"... и "setup-1a.bin", "setup-1b.bin", "setup-1c.bin"?
Насколько я понимаю "первый вариант" БЕЗ "SlicesPerDisk", а "второй" с ним. Для чего это нужно? Это отразится только на размере и количестве частей? Если я к примеру и так знаю сколько мне нужно, чтобы каждая часть занимала и сколько их должно быть... А расположение частей можно указать вручную в обоих случаях, т.е. можно располагать части на разных носителях отдельно от "setup.exe"? |
Цитата:
|
Цитата:
|
Всем привет!
подскажите пожалуйста, где можно посомтреть таблицу такого кода.. т.е. каждый код означает букву. На скриншоте пример слова "Русский" Заранее спасибо. |
Как в патчах для Сталкера реализован "дополнительный" индикатор процесса?
Или это тот же самый? Сначала идёт распаковка - доходит до конца до 100%, а потом при пропатчивании "полоска опять сначала". |
Цитата:
Код:
[Setup] Цитата:
Цитата:
|
Как же я заблуждался. Не знаю по чьему совету, но там говорилось, что флаг comparetimestamp проверяет только дату создания файла. оказалось же он проверяет дату изменения и все мои па с вызовами winAPI оказались не к месту. только время потратил. Глянул дебагером пошагово и в логе заметил, что сравниваются штампы времени и принимается решение о замене файла. Вот так. всего одно слово вместо кучи кода. Другим на заметку.
|
Цитата:
Цитата:
|
Всем привет!
Подскажите как решить такую проблему: Скомпилировал, установил, но когда запускаю деинсталятор, то выбивает две ошибки. Вот скрины ошибок: Заранее благодарен. |
ntrx,
скрипт выложи у меня такое было, когда к деинсталятору скин прикручивал |
ntrx, кидай [code] по тегом more щас посмотрю
|
El Sanchez и YURSHAT
:up Спасибо! :) |
Уважаемые!
натыкаюсь на решения, которые выполняют одни и те же функции например описанее компонетов через deskctrl и без него для расширеной версии или ISFont, который установливает временный шрифт и его аналог, но без библиотеки с isskin понятно, что без него никак, если нужен скин вопрос: что вообще лучше библиотека или чистый кусок кода на какой-то странице кажись Лександер писал, что библиотека в отличии от штатных средств разгружает систему и в некоторых случаях добавляет функции, которые сама инно не поддерживает это, понятное дело, хорошо но у меня в инсталляторе уже 4 библиотеки, картинки и скин, которые при инициализации разархивируются в темп (is-temp кажется) всё это занимает у меня одну секунду, что дольше чем без них, но секундой или тремя я могу пренебречь мне б хотелось окончательно знать что нужно использовать, если есть выбор, цель - максимальное качество (насколько возможно) самого инсталятора во всех отношениях |
Можно как-нибудь, что перед запуском инсталлятора вылазило табличко с кнопочкой "ОК"?
|
Цитата:
Код:
Function InitializeSetup: Boolean; |
Доброго времени суток!
Подскажите как использовать встроенные архиваторы (а может надо использовать сторонние) для сжатия файлов в секции [code] ? |
Gugle, непонял, которые ты вызываешь из секции Code и присутствуют в секции Files? так они сжимаются с параметрами, указанными в секции Setup, пока не укажешь им флаг nocompression
Если сторонние файлы - надо читать справку к архиватору каким сжимаешь |
R.i.m.s.k.y., да нет. Я имел ввиду, что мне надо было архивировать файлы, которые ложатся в backup, после установки софта.
Вот нашел Сейчас попробую как работает. Отпишусь в своем же сообщении. Работает. Есть прогресс бар. |
Цитата:
|
Как в патче для игры Сталкер реализованы несколько индикаторов процесса?
"По очереди появляются несколько индикаторов": отдельно для распаковки, для обновления и для регистрации. Т.е. сначала файлы распаковываются "полоска доходит до конца", потом "полоска по новой" для обновления и ещё раз для регистрации. Почему в оригинальном установщике шрифт текста Лицензионного соглашения более "аккуратный, компактный и чёткий", чем в моём? (1 - оригинал, 2 - мой): Текст в обычном *.txt, а не *.rtf, - можно ли его как-нибудь "настроить"? |
TROY Diamond, изменить запросто, просто открой Inno Setup 5.4.3 (РАСШИРЕННАЯ), открой скрипт ISS, редактор форм, и найди типа "License" и удачи изменить шрифты...
|
Ребят подскажите кто может у меня такая проблема переделал скрипт от "Killer" Установка проходит успешно а вот при удалении выскакивает ошибка Runtime Error (at 170:5712): Could not call proc. после нажатия на "ок" выскакивает следующая Runtime Error (at 213:5): Could not call proc. и на этом все ничего не удаляеться уже весь скрипт перелопатил в чем проблема понять не могу зарание спасибо за ответ!!
|
wdmitriy,
скин к деинсталятору пришивал? если да, то вот правильный код-пример: Код:
[Files] |
Цитата:
А вообще - Could not call proc означает обращение к объекту до его создания. Чаще всего. Без скрипта - больше никто и ничего не сможет тебе подсказать, что тебе действительно помогло-бы. Хотя желающих пофлудить на тему нарушения тобой элементарных правил постановки вопроса - найдется множество. Но большинство удержит себя в руках. |
скажите пожалуйста
если создать один чекбокс и например 3 радио кнопки, то чтобы сделать эти радиокнопки дочерними (как с компонетами 1, 1\1, 1\2) нужно настраивать Tab Order? например у чекбокса Tab Order 0, а у радиокнопок 1 |
Johny777, то есть, к примеру если чекбокс не галична (не активируется галочкой), то эти радиобуттоны не активны я так полагаю?
|
alert30,
да видишь ли у меня косяк с RunList-ом на последней странице устанавливаются 4 игры и в конце четыре чебокса выбираются все одновременно, а надо, чтоб по очереди флаг "эксклюзив" не действует в секции RUN, вот и прикидываю, чтоб как-то сделать так: здесь те пустой чекбокс "запустить" и радиобаттоны скрип с нуля делаю сначала на game script generator от South раньше эти чекбоксы были как бы "эксклюзивными" а сейчас нет где ошибся понять не могу отбой, примерно вот так будет эксклюзивный выбор на RunList-е но хотелось бы всё таки узнать насчёт TabOrder |
Помогите, как сделать в скрипте что бы были дополнительные голочки по поводу установки дополнительного ПО?
|
STRAYKER, может в справке поглядеть?
Код:
[Tasks] |
Привет всем!
Странное дело: function InitializeSetup(): Boolean; var path, RegValue, TmpFileName,TmpFileName2,ExecStdout: String; ErrorCode, Messages, Messages2: Integer; begin Result:= True; TmpFileName := ExpandConstant('{tmp}') + '\A.txt'; TmpFileName2 := ExpandConstant('{tmp}') + '\B.txt'; Exec('cmd.exe', ..+ TmpFileName +... , ExpandConstant('{tmp}'), SW_HIDE, ewWaitUntilTerminated, ErrorCode); LoadStringFromFile(TmpFileName, ExecStdout); Чето там с ним делается. Потом: Exec('cmd.exe', ..+ TmpFileName2 +... , ExpandConstant('{tmp}'), SW_HIDE, ewWaitUntilTerminated, ErrorCode); LoadStringFromFile(TmpFileName2, ExecStdout); Проблема в следующем: TmpFileName2 := ExpandConstant('{tmp}') + '\B.txt'; ----> не создается ни под каким предлогом, хотя A файл всегда. В чем проблема? |
Здравствуйте, ребят подскажите как создать инсталл с выборочной установкой. К примеру у меня в инстале 11 частей игры и нужно чтобы какие части нужны те и должны отмечаться галочками. Ткните мне туда где это описано!
|
SARATOVSKY,
Tasks (выше пример) и Components по аналогии |
как сделать чтобы видео проигрывалось на заднем фоне в окне инсталлятора за надписями, прогрес баром и тд.
|
помогить как сделать музыку в инсталляторе
|
Люди помогите как соединить эти 2 кода
procedure CurStepChanged(CurStep: TSetupStep); var FindFiles: TFindRec; i: integer; MyFiles: array of string; MyDir, BackDir: string; begin if CurStep=ssInstall then begin if MyTask.Checked then begin MyFiles:=['*.vtx','*.','*.mdl','*.vvd','*.phy']; // указать файлы или маски нужные для бакупа через запятую. при указании маски '*' бакупятся все файлы с вложенными папками MyDir:=ExpandConstant('{app}'+'\cstrike\models\weapons\'); //папка откуда бакупить BackDir:=ExpandConstant('{app}'+'\Backup\'); // папка куда бакупить for i:=0 to GetArrayLength(MyFiles)-1 do begin if FindFirst(MyDir+MyFiles[i], FindFiles) then begin repeat if not DirExists(BackDir) then begin CreateDir(BackDir); end; MoveFile(MyDir+FindFiles.Name, BackDir+FindFiles.Name); until not FindNext(FindFiles); FindClose(FindFiles); end; end; end; end; end; и procedure CurStepChanged(CurStep: TSetupStep); begin case CurStep of ssInstall: begin PercentsOldProc:=SetWindowLong(WizardForm.ProgressGauge.Handle,-4,CallBackProc(@PercentsProc,4)); if GetArrayLength(ADisk)>0 then begin KillTimer(WizardForm.Handle,WFDiskTimerID); SetArrayLength(ADisk,0); end; end; ssPostInstall: SetWindowLong(WizardForm.ProgressGauge.Handle,-4,PercentsOldProc); end; end; |
master00778, вот пример.
Есть даже регулятор громкости. |
master00778, wdmitriy,
трудно в справку заглянуть или примеры в шапке??? |
wdmitriy, IsPicture в помощь...
|
ребят,подскажите пожалуйста с чем связана проблема с неправильным показом времени установки?к примеру показывает часа полтора,а устанавливается за минут 20
|
sergey3695, это для изображения а я просил для видео
|
Кто тебе сказал, что IsPicture для изображений? Она с картинками вообще не умеет работать. я ее как раз для того и писал, чтоб видео на фоне инсталла можно было показывать.
тоесть, позади надписей, контролов, и так далее. |
Как добавить видео я знаю мне нужно чтобы видео воспроизводилось именно на заднем плане надписей, прогресбара и тд в окне инстолятора
Лександер, я добовляю видео в пример IsPicture а у меня при запуске установка не отвечает |
Из 250-ти скачавших, ни у кого проблем не было. К библиотеке идет 100% рабочий пример. Наверняка просто успел накосячить в коде, либо подключил что-то, что не работает. например код для использования своих шрифтов в инсталле.
Без твоего скрипта, наверняка сказать не могу. |
[Setup]
WizardImageFile=Fon.avi AppName=My Program AppVersion=1.5 DefaultDirName={pf}\My Program [Files] Source: IsPicture.dll; Flags: dontcopy Source: Fon.avi; DestDir: {tmp}; Flags: dontcopy; [code] //----------------------------------------- procedure Initialize(AhWnd,BhWnd: hWnd;Color:Tcolor;bAlpha:Integer;Flag:Boolean);external 'Initialize@files:IsPicture.dll stdcall delayload'; //----------------------------------------- // AhWnd - форма, которая будет сверху // BhWnd - форма, которая будет снизу // Color - цвет,который будет вырезан из формы, которая сверху // bAlpha - степень прозрачности - от 0 до 255 для формы,которая сверху // Flag - значения - True-будет применена прозрачность false- вырезание цвета //----------------------------------------- // Примеры: // Initialize(WizardForm.Handle,MainForm.Handle,$0f0f0f,130,false); // будет вырезан цвет $0f0f0f из WizardForm (флаг false) //----------------------------------------- // Initialize(WizardForm.Handle,MainForm.Handle,$0f0f0f,130,True); // Будет применена прозрачность 130 к WizardForm (флаг True) //----------------------------------------- procedure Deinitialize;external 'Deinitialize@files:IsPicture.dll stdcall delayload'; const // цвета придется тщательно подбирать. // Если Сглаживание шрифтов в системе отключено, // то нужно его включить на время настройкт инсталлятора. TfonColor = $0f0f0f; // Цвет фона $0f0f0f TfontColor = $E5E5E5; // Цвет текста $E5E5E5 procedure InitializeWizard(); var s:String; begin //----------------------------------------- // нижеприведенный код очень желателен для наличия. WizardForm.Color:=TfonColor; WizardForm.WelcomePage.Color:=WizardForm.Color; WizardForm.FinishedPage.Color:=WizardForm.Color; WizardForm.InnerPage.Color:=WizardForm.Color; WizardForm.DirEdit.Color:=WizardForm.Color; WizardForm.ReadyMemo.Color:=WizardForm.Color; WizardForm.MainPanel.Color:=WizardForm.Color; //----------------------------------------- //----------------------------------------- WizardForm.Font.Color:=TfontColor; WizardForm.Font.Size:=9; WizardForm.Font.Name:='Georgia'; WizardForm.Font.Style := [fsBold, fsItalic]; //----------------------------------------- //----------------------------------------- WizardForm.PageNameLabel.Font := WizardForm.Font; WizardForm.WelcomeLabel1.Font := WizardForm.Font; WizardForm.WelcomeLabel1.Font.Size:=14; WizardForm.FinishedHeadingLabel.Font := WizardForm.Font; WizardForm.FinishedHeadingLabel.Font.Size:=14; //----------------------------------------- //----------------------------------------- WizardForm.WizardBitmapImage.Parent := MainForm; WizardForm.WizardBitmapImage.Align := alClient;; WizardForm.WizardBitmapImage2.Hide; //----------------------------------------- //----------------------------------------- // указываем формы, в данном случае WizardForm и MainForm // выбираем режим работы с помощью флага: //True-будет применена прозрачность к WizardForm false- вырезание цвета. //соединены формы будут в длл-ке Initialize(WizardForm.Handle,MainForm.Handle,TfonColor,130,false); //----------------------------------------- // не забываем показать MainForm MainForm.Show; //----------------------------------------- end; procedure DeinitializeSetup(); begin //----------------------------------------- // не забываем правильно завершить функцию, // во избежание ошибок при закрытии Deinitialize; //----------------------------------------- end; Ну и вчем ошибка я ничего не добовлял кроме того что заменил Fon.bmp на Fon.avi |
Пожалуйста, помогите решить следующую задачу.
Нужно силами Inno Setup создать программу-обновлялку, которая обновляла бы программу на флешке. Нужно сделать так, чтобы Программу-Апдейтер можно было запускать из любой папки на компьютере. Для этого необходимо по маркерным файлу и папке определить на какую букву села флешка, после чего должно произойти обновление на флешке в папках: %буква_флешки%\Settings\Client\ и %буква_флешки%\utils\. Желательно обновляемые файлы предварительно скопировать в backup. Надеюсь на помощь. P.S. Всё застопорилось на определении буквы диска с флешкой. |
wdmitriy, Ооо... вопревых есть теги, чтоб портянки не вывешивать. А во вторых - где ты нашел такую древнюю версию?
Ссылка - тут последняя версия. |
На этом сайте спасибо за последнюю версию
|
vitl,
как-то так Код:
[Setup] |
помогите пожалуйста
вылетает с ошибкой когда добавляю AddToMemo [Files] Source: half-life 2\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension onlyifdoesntexist; Components: g0\c1; AfterInstall: ExtLog(); BeforeInstall: AddToMemo, ChangeCaption('установка компонентов Half-Life 2'); как в BeforeInstall записать 2 параметра? в справке говорится, что через запятую, но у меня это не работает с этой проблемой столкнулся, когда объединял эти 2 кода 1 2 |
Цитата:
|
Цитата:
На флешке Settings\Client\ присутствует, рядом с файлом-скриптом тоже. |
vitl, Source - местонахождение файлов обновления
первый слэш убери Source: Settings\Client\; Source: utils\; или жеско пропиши путь местонахождения обновления |
Цитата:
Source: Settings\Client\*; DestDir: {app}\Settings\Client\; BeforeInstall: ChangeCaption('\Settings\Client\'); Flags: ignoreversion recursesubdirs createallsubdirs Теперь другая ошибка: "Required function or procedure 'Path' not found" |
Цитата:
Код:
function Path(): String; |
Цитата:
|
значит требуемой процедуры нет
полный код |
R.i.m.s.k.y.
Код:
|
vitl,
код рабочий джигурда процентов Код:
|
Цитата:
Спасибо, R.i.m.s.k.y. 2.) Но почему то не обновляются файлы (при запуске готового EXE-ка), а только бэкапятся. В чем м.б. проблема? При компиляции такого нет. 3.) Что делает код? (см. ниже) Цитата:
|
vitl,
1. пожалуйста 2. строчка Source: Settings\Client\*; DestDir: {app}\Settings\Client\; копирует обновления, проверяйте пути, можно в ее изменить, добавить AfterInstall: MsgBox(ExpandConstant('{app}\Settings\Client\'), mbError, mb_Ok) - будет выводится путь куда пишется, хотя это должно писаться над зеленой колбасой 3. бэкапит, nullfile - любой левый мелкий файлик, можно и через CurStepChanged, но это следующий уровень 4. писать руками имена файлов в Procedure backUp() |
Цитата:
на одном уровне с ЕХЕ-ком положить каталог UPD\, который содержит обновленные папки с файлами (т.е. Settings\Client\ и UTILS\), как и в корне флешки? Чтобы из UPD\ подхватывались обновления - чтобы не дописывать каждый раз скрипт при изменении в последующих обновлениях. Т.е. в дистрибе с обновлениями папка UPD\ будет повторять корень флешки. 2.) Еще вопрос по тому-же скрипту: что изменить в коде, чтобы копировались в backup только те файлы, которые обновляются? |
vitl,
1. Source: {src}\upd\Settings\Client\*; ... Flags: external 2. см 4 выше, ручками дописываешь в процедуру backup в copyfiles(Drive_Letter +':\'+'Settings\Client\file1', Drive_Letter +':\'+'Backup\'+GetDateTimeString('YYYYMMDD_hh:nn:ss', '-', '-')+'\Settings\Client\'); Можно конечно замутить опрос в цикле {src} и бэкап, но а) сложность не оправдывается целями ибо б) полные бэкапы спасут мир, а инкрементные следует предать анафеме |
Прошу помощи:
Во время установки запускается процесс, нужно дождаться появления его окна и убить процесс. Не убивается процесс. |
gvshil, а что делает точка с запятой в имени экзешника?
|
Цитата:
|
gvshil,
а руками из комстроки он прибивается? |
R.i.m.s.k.y.
Отписал в РМ. |
gvshil, на тематические вопросы отвечаю в темах
сам прибиваю также, через taskkill |
Доброго времени суток!
Подскажите как можно проверить создана Panel или нет? Что то типа: Код:
[*code] |
Цитата:
А так, какой смысл создавать элемент, который не используется? |
Нет не проще. Панелька может создаваться при выполнении нескольких не взаимосвязанных условиях.
|
Gugle, я в таких случаях делаю проще:
1. объявляю глобальную переменную типа integer, к примеру var panelka_goooogle : integer; 2. в InitializeSetup присваиваю ей -1 panelka_goooogle := -1// переменная неопределена 3. в процедуре где создается твоя панелька делаю уже panelka_goooogle := 1 если панелька дропается или еще какие уловия panelka_goooogle := 0, 2, 3... 4. где нужна проверка на панельку if (panelka_goooogle = 1) then... )[/off] |
|
Цитата:
Цитата:
Цитата:
|
Serega,
спасибо, .................................................................................................... ............................ и ещё вопрос как сделать, чтобы созданный мной сроллбокс в расширенной версии инно, в дизайнере чтобы он прокручивался колесом мыши. VertScrollBar.Tracking := True; не помогает подозреваю, что не хватает какой-то функции |
Цитата:
Как "тихо" запустить определённый exe-шник, копируемый в папку установки, сразу же после его успешного копирования и потом закрыть его "автоматом", или после распаковки всех файлов приложения, НО ДО ЗАВЕРШЕНИЯ УСТАНОВКИ? Ничего "криминального" - этот "файл" является небольшой родной "утилиткой", которая собирает определённые сведения о системе и прописывает необходимые данные в реестр в ветку устанавливаемого приложения. Если есть какой-нибудь другой способ, то тоже неплохо. Пробовал в секции Run - сначала запустить этот файл, а потом, убить его с помощью батника, в котором прописано "taskkill /f /im MyProg.exe" - НЕ получается, прога запускается и висит, батник не запускается, пока прогу НЕ закроешь, а мне ведь и НАДО ЕЁ закрыть!!! Если поставить флаг "nowait", то он действительно НЕ ждёт и не даёт файлу даже запуститься... Пробовал так, тоже не получилось: И так: Exec('taskkill', '/f /im MyProg.exe', '', SW_HIDE, ewWaitUntilTerminated, ErrorCode); А также можно ли, чтобы данные в реестр вносились "в самом начале" или же "2 раза" или "по частям". Нужно, чтобы выбранный путь установки (папка назначения), внеслись в реестр ДО завершения установки. |
Serega
Вы как-то делали "фейковый" индикатор процесса, по типу IE. Есть ли сейчас какие-нибудь варианты и наработки? Нужна индикация процесса во время установки дополнительного ПО - установка долгая минут 15... Можете ли Вы "доработать" Ваш индикатор, "под секцию Code", а не "под Run"? И действительно он НЕ работает на некоторых темах (скорее всего из-за того что они не подписанные/не официальные)... Работает на "стандартной" во всех ОС и на "Классической" - но бегунок двигается намного медленнее... |
Странно, но по всем темам не нашел такого простого варианта добавления правила в брандмауэр Windows:
Код:
[Run] Ман есть тут, но вкурить не могу http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx |
подскажите, пожалуйста, есть ли способ узнать в инно есть ли интернет или нет
|
|
|
VASYAKRN,
надеюсь никто не станет тебе помогать :read: |
Цитата:
Ах да, у тебя-же объявлено, что этот форум дал свое согласие на дружбу с твоим быдло-сайтом. А раз так, то может тебе твой друг, уважаемый Vadikan поможет? |
Лександер, Ничего не понял, что ты написал, но обращу внимание
|
Цитата:
|
Лександер,
Если ты не заметыл у меня там пишет "Ссылки" Лександер, Кстати поставь счетчик на свой http://innoultra.ru/ и я хочу сравнть мой "быдло-сайт" с твоим |
Цитата:
Цитата:
Не заметил |
мда, начался оффтоп. тему чистить надо))
VASYAKRN, ох лол, быстренько переименовал "друзья сайта" на "ссылки" и пытается доказать что так и было. ужасный человек... Цитата:
|
Лександер, Ха-ха
ARS_23, я переимини гдето пол месеца назад |
Помогите, пожалуйста, скриптом
Требуется в заданной строчке:string найти определенные слова из одной строки массива, кол-во слов может разное, хоть 0, но не больше 5. Сам я заткнулся уже на объявлении array of string в 20 строк и 5 столбцов чтобы в цикле перебирать (в справке и примерах этого не нашел). Пример массива: ['Москва','ул','Пушкарная','','' '','','','','' '','Ленинград','','пер','Московский' ...] Пример строки '000000, Ленинград; улица московская 65-1985' И соответсвенно как правильно заполнить в инно этот array Заранее благодарю! |
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Код:
var |
Лександер,
Что то не заметил в последней твоей сборке innocallback.dll Пришлось самому ее докидывать в папку dll pack\ |
El Sanchez, два вопроса: 1) где взять ws2.dll и 2) можно ли определять таблицу в "человечьем" виде как в примере выше, а не по ячейкам отдельно (вопрос синтаксиса)
|
Цитата:
Цитата:
Цитата:
|
Цитата:
P.S. Почитал статейку, надо чего-нибудь другое придумать. Цитата:
Цитата:
|
Подскажите пожайлуста, как сделать так, чтобы при инсталяции не создавался деинсталлятор ?..
И второй вопрос, как в разделе Files указать создание пустой папки (директории без файлов) ?.. Заранее благодарен за ответ. |
|
Цитата:
Да и вообще на будущее, мало ли кому пригодится, такого вопроса еще никто не задавал, судя по поиску ;-) |
svensoft, как бы всё это в справке наличествует...
1. [Setup] Uninstallable=not 2. Указывается не в Files [Dirs] Name: "{app}\Data" |
Ivan_009, Както так:
Остальные секции сам добавишь - файлы, ярлыки, и тому подобное. в коде для работы требуются много файлов - они были прописаны в обоих скриптах, эти секции нужно объединять вручную. |
Цитата:
|
но почемуто невидно прогресс бара и процентов распаковки
|
Ivan_009, похоже много скриптов в Inno Setup впихал, поэтому и потеряно прогресс-бар.
|
Цитата:
Цитата:
R.i.m.s.k.y., вариант №2 способа узнать есть ли Интернет: Цитата:
|
Цитата:
блин в справке про синтаксис вообще по нулям, мой вопрос простой - как забить в Инно двумерный массив не каждую ячейку поотдельности, а общим видом Если б я знал как правильно я бы и не спрашивал |
Вложений: 1
Цитата:
Первый тест во вложении. |
Цитата:
Цитата:
|
El Sanchez, ВОТ! как при задании элементов массива отделить строки!
через точку с запятой или вот так? ['Москва','ул','Пушкарная','',''] ['','','','','''] ['','Ленинград','','пер','Московский'] [...] епт даже так не прокатывает sss[0] := ['','Ленинград','','пер','Московский'] поотдельности забивать я идиотом сделаюсь другой вопрос про синтаксис Инно - каким способом в инно закомментировать целый блок секции или кода? // и ";" - это для строки |
Цитата:
блок} (*закоментированный блок*) както так. Вроде больше нет знаков коментария. |
С точки зреня логики я поменял местами страницы
теперь страница wpSelectComponents находится перед страницей wpSelectDir чтобы сделать ещё лучше, хотелось бы расширить возможности ComponentsDiskSpaceLabel чтобы проверялось свободное место на диске логика такая например выборан только компонент 1 размером 4гб на жёстком диске свободно 6 результат: кнопка далее активна теперь выбраны 2 компонента общим размером 9гб места не хватает появляется надпись (лейбл.Show или сатикТекст.Show) результат: кнопка далее неактивна у меня было похожее решение, но там необходимое место на диске было "статичным" и задавалось заранее подскажите пожалуйста как это сделать? |
Цитата:
Код:
[code] |
Цитата:
Единственное - стоит побороть-таки, несовместимость с АНСИ. Вся беда в отсутствии расширенных строковых типов в инно. Но их можно, наверное описать? |
прошу прощения
в справке нашёл ответ на свой вопрос из предыдущего сообщения вопрос в том как вместо сообщения отобразить инфомацию (выделил жирным шрифтом) на появляющемся лейбле вместо окна Код:
var |
У меня в процессе установки создаются файлы, о которых установщик "не знает". Если установку прервать или что-то случится до её завершения, то эти файлы останутся.
Что можно сделать в данном случае? При "корректной" деинсталляции, есть способ, записать все файлы, например в секцию "UninstallDelete". А ЕСЛИ ДО ДЕИНСТАЛЛЯЦИИ ДЕЛО "НЕ ДОЙДЁТ"?! Как быть с сохранениями и (настройками), которые хранятся в папке установки приложения? Мне нужно, чтобы ВСЯ папка удалялась, КРОМЕ папки с сохранениями (если пользователь решит её оставить), а если нет, то чтобы всё удалялось? Как удалить сохранения игры "по расширению"? В подпапке папки установки игры создаются файлы с расширением *.sav и/или *.red, а название у этих файлов любое, - какое пользователь им придумает. Например: My Game\userdata\1.sav; My Game\userdata\1.sav. "userdata" - это папка в которой хранятся различные "профили" пользователя, - ТУПО ЕЁ всю удалять и/или "реагировать" на неё НЕЛЬЗЯ , т.к. кроме сохранений там есть и другие файлы. А "1.sav" и/или "1.red" - это файлы сохранения, но имя может быть любым, нужно найти их и предложить удалить если есть таковые, и ничего не предлагать если в папке "userdata" их нет!!! |
Кто знает сайтик где есть готовые скрипты инсталлеров? скиньте плиз
|
Подскажите, а как сделать тоже самое:
но только чтоб и с локалкой отрабатывало, а то когда интернет есть, всё работает, а когда интернет отключен и работает только локалка, то установщик запускается, а нужно чтоб было как и с рабочим интернетом, такое вообще возможно? Цитата:
|
Devils Night, ну как вариант пинговать 127.0.0.1, это loopback адрес, если он пинугется - значит сеть есть
Кстати пинговать 2ip для определения нэта не самый кошерный вариант, ping возвращает неноль только если сети нет, если к примеру ему ДНС вернет что данный узел не найден, пинг с чистой совестью вернет 0, хотя сайты не открываются и автообновлялка отвалится с тойже ошибкой Выше El Sanchez дал пример кошерного определения связи |
Цитата:
а нужно, чтобы папки utils\ и Settings\Client\ создавались в одном бэкапе 'Backup\2012-02-20_12-10-10\Settings\Client\' и 'Backup\2012-02-20_12-10-10\utils\' Может можно как-то в начале процедуры задать для папки бэкапа переменную (на 'YYYYMMDD_hh:nn:ss'), а потом ниже ее подставлять, примерно так: ...+'Backup\'+'переменная_с_именем_папки_с_датой'+'\Settings\Client\'); Или есть более оптимальный выход? Подскажите, пожалуйста, как оптимизировать код. |
vitl,
Код:
Procedure backUp(); |
В инсталляторе надо проверить, установлен ли Microsoft Visual C++ 2008 SP1 Redistributable Package, и соот-щим образом сформировать список компонентов. Вопрос - как лучше это сделать? Куда смотреть?
|
Dirk Diggler, я проверяю вот так
Код:
Function isvcredist():boolean; |
Благодарю. Расширил путь до SP1, рабоатет. А как перенос каретки сделать в сообщении?
|
Dirk Diggler
перенос каретки #10, c новой строкой #13#10 |
Как удалить данный текст подскажите пожалуйста
|
Ivan_009, а вот как ты думаешь, с одним скриптом без файлов, много народу найдётся тебе помочь?
|
Цитата:
|
Ребят. Скиньте пожалуйста прикольный стиль. Желательно чёрный
|
StarClock, в шапке Ultimate Black
если кому надо - определение фреймворков Код:
function netfw35(): Boolean; |
Мне бы желательно типо такого стиль http://cs4560.vkontakte.ru/u63041931...x_6498b93f.jpg
|
StarClock, инсталлер должен порхать как бабочка и жалить как пчела!
а ты рюшечками увлекаешься... |
R.i.m.s.k.y., Не понял.
|
StarClock, инсталлер должен быть функциональным, надежным и безглючным
Единственная его цель - правильно поставить и корректно все удалить, не тронув лишнего. Обвешивая его картинками и прочим глямуром ты резко понижаешь его надежность и переносимость разных систем. Доказательства - на руторе в раздаче игр. |
R.i.m.s.k.y., Я всё равно хочу этот стиль? У тебя он есть? Если есть дай будь добр
|
StarClock, нет, стили я не коллекционирую
Коллекционер у нас Лександр с сайтом http://innoultra.ru/ |
|
Лександер, Спасибо. R.i.m.s.k.y., Спасибо
|
Лександер, А как их в установочник вставить? :D
|
Тут есть все, что для этого нужно - длл, примеры кода, а так-же невероятно подробная и удивительно понятная справка по работе со скинами, прочтение которой снимает все вопросы разом. В гугле ищется за пять секунд.
|
StarClock, а хорошие люди и перевод сделали http://pastehtml.com/view/bj5zbh42r.html :)
|
Цитата:
|
скажите пожалуйста
вот такие чекбокс и радиокнопка у меня при использовании скина хотел сделать такими (это родные. У меня они появляются, если сам создаю чекбокс) вот наткнулся на такое стандартное решение ComponentsListBtnImageFile=btnimage.bmp и наложил вот такие текстуры. (или правильнее сказать глифы) получил не то что нужно вот вопрос почему (неужели из-за скина, тк без него всё в порядке?) и как можно это исправить. Если нельзя так (вот так ComponentsListBtnImageFile=btnimage.bmp), то как сделать по другому. заранее спасибо за помощь. :) |
Цитата:
|
нет вы меня не так поняли. я уже себе сделал скрипт но хочеца чевото нового. и я ищю готовые скрипты всякие разные. тоесть из нескольких скриптов собираю 1 хороший.
|
Добрый день ! Подскажите пожалуйста. Как сделать что-бы сразу при запуске инсталятора выводилась фоновая картинка на полный экран а потом уже при установке шло слайд шоу ? И как сделать что-бы плеер был все время виден ? Если можно то поподробнее вплоть до того что и после какой строки вставлять и чего где править.
P.S. Подскажите пожалуйста начинающему скриптописцу. |
Цитата:
похоже ты сделал свой скрипт прораммой inno setup game script generator созданной South с форума цсмании там всё, то ты просишь реализовано покопайся в программе например на странице "Фоновые рисунки" сверху указываешь свой фоновый рисунок снизу добавляешь картинки для слайдшоу на странице "фоновая музыка" есть чекбокс "показать плеер" |
Johny777,
Спасибо с фоновой картинкой уже разобрался. А вот с плеером как быть. Чекбокс то есть, но плеер со времен пропадает. А мне надо что-бы он все время отображался. Ну то есть что-бы отображался только плеер а название песни пропадало. Там есть задержка именно для окошка с названием песни а для плеера такого не нашел. |
Цитата:
|
BlackPhoenix28,
попробуй выявить строки в коде отвечающие за твой нынешний плеер и потом интегрируй это http://rghost.ru/36644901 получишь вот это (оно?) |
Johny777,
Нет, не то. Я хочу что-бы тот плеер который у меня стоит был виден все время. Просто он с перемоткой и паузой + можно несколько файлов проигрывать. Да и вообще он мне подходит еще и потому что у меня же во время установки окошко с прогрессом в правом нижнем углу, весь экран открыт и видны фоновые картинки а мне именно это и нужно. Поэтому и не хочется менять плеер. |
Подскажите, пожалуйста, как правильно занести в ключ реестр без Code путь, хранящийся в другом ключе
делаю так Код:
[Registry] Invalid registry constant "reg:HKLM\SOFTWARE\Classes\CLSID\{{EE30215D-164F-4A92-A4EB-9D4C13390F9F" Где, в какой жеппе вообще расписан по человечьи синтаксис инно? UPD: решение Код:
..ValueName: Path; ValueData: {reg:HKLM\SOFTWARE\Classes\CLSID\{{EE30215D-164F-4A92-A4EB-9D4C13390F9F%7d\InprocServer32,};... Я конечно извернулся: в акелпаде меняю "конец строки" на "конец строки//" но это изврат |
можно мне маленький пример?
как привязать чекбокс к компоненту например делаю простой пример Код:
[Setup] --------------------------- Ошибка запуска --------------------------- Строка 16: Could not call proc. --------------------------- ОК --------------------------- |
Компонентами нельзя управлять из кода. они, в отличии от задач, создаются на запуске инсталла. соответсвенно и ошибка - ты пытаешься управлять объектом, до его создания. вот с задачами такое прокатит.
|
Цитата:
Код:
procedure InitializeWizard(); И с задачами катит Главное вертеть компонентами и задачами из кода после InitializeSetup |
Цитата:
можно пожалуйста более полный пример на основе моего предыдущего поста? дальше по аналогии сделаю у меня как раз зависимости задачи-компоненты и полностью убирать все компоненты и на странице через Check делать кучу галок с переключателями в секции файлов не самое весёлое занятие |
Цитата:
Цитата:
|
Цитата:
Цитата:
Код:
[Components] |
подскажите пожалуйста
как сдетать TNewEdit в котором будут вводиться параметры запуска ярлыка (как в Steam "параметры запуска") вот строка из моего скрипта Name: {group}\Half-Life 2; Filename: {app}\common\half-life 2\hl2.exe; WorkingDir: {app}\common\half-life 2; Parameters: -steam -game hl2 -appid 220; Components: g0\c1; IconFilename: {app}\common\half-life 2\hl2.ico -steam -game hl2 -appid 220 менять нельзя, но дописать можно очень многое например -console +fps_max 60 -dev может быть вот так дальше не знаю Name:.......Parameters: -steam -game hl2 -appid 220 -{code:функция};......... похожие реализации уже были при вводе ника в rev.ini |
Цитата:
|
Цитата:
|
Цитата:
Цитата:
Цитата:
|
Johny777,
Можно еще спросить по реестру. Собрал скрипт в IS GameScript generator. У меня стоит Windows 7 x64, и все игрушки пишутся вот в эту ветку реестра: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ И так как я добавляю реестр из reg - файла (вернее просто ветку реестра с моего компа) то будут ли эти игрушки после установки работать скажем на Win XP x32 или на Win 7 x32. Или надо добавлять в скрипт какую то проверку на разрядность системы. Если надо то что и куда добавить. А главное, как ? (Вариант ручками и т.д. прошу не предлагать). |
BlackPhoenix28, Просто удаляй из пути подпапку Wow6432Node. Тоесть вместо
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\и так далее, нужно HKEY_LOCAL_MACHINE\SOFTWARE\и так далее. х32-х64 инно определяет сама, и в х64 автоматом подставит подпапку Wow6432Node в путь. Если у тебя вдруг будет нужда внести запись без этой подпапки в х64 системе, нужно указать х64-корень. HKLM64\SOFTWARE\ только не забыть проверку сделать - Check: IsWin64, посколько в х32 системах будет ошибка и нужно исключить такую запись из обработки установщиком. |
Цитата:
вот сделал, параметры добавляются всё работает! у меня вопрос как привязать эту функцию к кастомному чекбоксу (раньше у меня на была привязана к задаче Task чарез Check) Код:
function Task_DirectX:boolean; /// DirectX search и если во внешней папке нет директа, то и чекбокса нет |
Johny777, как то криво, но работает :wow:
Код:
If not (FileSearch('DXSETUP.exe', ExpandConstant('{src}\Redist\DirectX10'))='') then begin |
Johny777, FileExists использовать религия индусская запрещает?
Код:
If (not FileExists(ExpandConstant('{src}\Redist\DirectX10\DXSETUP.exe'))) then |
R.i.m.s.k.y., чуток подправил :)
Код:
If FileExists(ExpandConstant('{src}\Redist\DirectX10\DXSETUP.exe')) then |
nik1967, Johny777
ну это вам виднее, to not or not to be a not |
Немного сложный вопрос, интересует вот что:
В сетап имеется Код:
[Setup] Код:
[Components] |
Devils Night
AppName - это опознаватель программы которую ты ставишь для системы DefaultGroupName и DefaultDirName объявляются раньше страницы компонентов Так что никак Если бы передо мной стояла такая задача, я бы сделал 3 раздельных инсталлера: для Программа 1, для Программа 2 и третий со списком компонентов из "Программа 1, Программа 2" и выбранную прогу ставил втихую |
R.i.m.s.k.y., nik1967,
спасибо вот так всё супер проверил дальше по аналогии сделаю но с учётом своих названий чекбоксов Devils Night, как вариант можно сделать авторан состоящий из одной страницы с двумя переключателями, который после себя запускает одну из 2-х из внешней папки или копирует из самого себя в tmp у обеих программ сделать полуодинаковые DefaultDirName={reg:HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{#SetupSetting("AppID") }_is1,InstallLocation|{pf}\program1} DefaultDirName={reg:HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{#SetupSetting("AppID") }_is1,InstallLocation|{pf}\program2} и одинаковые AppId=p12 AppId=p12 AppName=program1,2 - тоже одинаковые, но скрыть их на странице приветствия например и заменить на свои наименования а в секции одной [InstallDelete] вписать всё, что нужно удалть от другой и наоборот (ярлыки, файлы в (app) итд) ____________________________________________ скажите пожалуйста если один файл относится к многим чекбоксам, то нужно писать так? [Files] .....; Check: 1 and 2 and 3 или так .....; Check: 1 or 2 or 3 |
В моём случае скорее подошло бы так: +но чтоб каждый RadioButton выбирался как исключительным (не всё вместе), но чтоб все 3 были привязаны к одной кнопки установить, а вот как это сделать я незнаю. |
Devils Night,
вот "автозапуск" ищет во внешней папке program setup_1.exe setup_2.exe setup_3.exe если одного из них нет, то нет переключателя |
не успел удалить првый и ты его же и взял
я переделал в первом ошибки были сейчас протестировал всё работает попробуй! (пост выше) или вот архивом http://rghost.ru/36704123 |
Цитата:
Что не так, как сделать? Нужен авторан на основе: но с RadioButton. |
Devils Night,
в дизайнере открой на странице Ready сдвинь влево на 1000 пикселей что не нужно или visible= false картинку можешь встаить bmp там же пнг это через ботву, которую я ни разу не использовал можно бмп в фотошопе полупрозрачным сделать ...или позже сам доделаю Цитата:
|
Цитата:
нужно не из авторана в инсталятор функции добавить, а в авторан, в котором уже почти всё присутствует кроме RadioButton. Цитата:
|
Цитата:
добавил всплывающие подсказки добавил константы названий и всплывающих подсказок/описаний переключателей не зная как сделать чекбоксы и их названия прозрачными разместил их все на панели вот код или архив с картинкой :), библиотекой и скином http://rghost.ru/36712056 |
Подскажите, пожалуйста, как в реестр записать путь к программе в формате 8.3, т.е. не C:\\Program FIles\\Prog, а C:\\PROGRA~1\\Prog
Я знаю есть функция GetShortName, но в коде не хочется переписывать 15 параметров. ValueData: GetShortName(ExpandConstant('app')) не прокатывает, в реестр пишется это как строчка, а не как результат (что неудивительно) не прокатывает и {code:GetShortName(ExpandConstant('app'))}, ругается что такой функции не найдено (этож хранимка, какой не найдено?!) И еще, как удалить не из кода значение в реестре, про флаг deletevalue я знаю, но он удаляет перед записью значение в реестре, хотелось бы чтобы удалил и не записал. Заранее благодарю |
Подскажите, как сделать так чтобы писалось не регистрация файлов, а регистрация DLL
Код:
[Files] |
Devils Night, это монопениссуально!
|
Цитата:
|
Devils Night, ну изочленно
в смысле регистрация файлов и регистрация DLL одно и тоже Или ты видишь разницу? |
Цитата:
StatusRegisterFiles=Регистрация файлов... и меняешь на StatusRegisterFiles=Регистрация DLL... |
nik1967, Devils Night,
можно проще Код:
[Messages] Код:
[Messages] на мой вопрос выше кто-нибудь внимание обратит? |
Подскажите, пожалуйста, как создать папки с определенными правами следующим образом:
Folder1\ - группе 'Все' разрешения на "Чтение и выполнение", "Список содержимого папки", "Чтение". Folder1\Folder2\ - группе 'Все' разрешения на всё, кроме "Полного доступа". ПРИМЕЧАНИЕ: На вкладке Безопасность кроме группы "Все" никого не должно быть. |
Цитата:
Код:
...ValueData: {code:GetShortName|{app}} Цитата:
Цитата:
|
El Sanchez, ключевое слово if the key did not already exist
у меня наоборот already exist и надо его стереть при установке |
R.i.m.s.k.y., ну так используй совместно с deletevalue. deletevalue перед записью значения попытается его удалить и ведь запишет же, если бы не dontcreatekey, который это значение не даст прописать.
|
|
Цитата:
Цитата:
|
cliff99,
примерно так можно центрировать (размеры конечно под себя подгоняй) а вообще можно легко все это в форм дизайнере сделать. Код:
with WizardForm.OuterNotebook do begin |
|
Блин пол дня убил и ничего не добился.
И форм дизайнер не могу найти.. |
cliff99, Cкачай Inno Ultra там всё что душе угодно=)Скачать тут
|
Цитата:
Цитата:
Цитата:
nik1967, R.i.m.s.k.y., Спасибо. Цитата:
Цитата:
|
valyok666,
Спасибо скачал но проблему не могу решить свою хоть убей... Всё -Огромное вам спасибо наконец удалось передвинуть куда нужно Только что - то изображение туда добавить не получается через этот редактор никак. BMP Всё - разобрался. |
Привет. Мне интересно повышения скорость распаковки.. Полазал по разным ссылка, даже скачал какие-то примеры скрипта с freearc, но толком ничего не понял.. Не могли бы вы подробно разъяснить как увеличить скорость распаковки с примерами? Спасибо.
|
И еще вопрос: как вшить в инсталлятор свой шрифт? Как я понял, форточка не распознает шрифт просто так, его нужно вначале установить, а для этого нужно добавить строку в реестре и скопировать сам шрифт на системный диск.. Хотело бы увидеть как это будет выглядеть.. Спасибо.
З.Ы. в виде батника и рэг-файла не подходит, хотелось, чтобы все было прописано а инталляторе |
Цитата:
|
Как мне сделать страницу с выбором программной группы помогите пожалуйста вот скрипт
|
Johny777, это кривые варианты. У некоторых не будет работать.
|
Rikill,
у тебя есть лучше? (сам один пример использую) Цитата:
|
Johny777, спасибо, второй вариант помог.
|
А как сделать так, чтобы фон текста был прозрачен? Что прописывать? Заранее благодарю.
|
не уверен, но припиши на каждом тексте
Transparent:=True; |
уже ничего, удалите это сообщение пожалуйста
|
Johny777, у меня есть лучше. Закрытый вариант.
Зависит не известно от чего. DragonTander@fb, а самому удалить сообщение не судьба? |
|
|
Я бы хотел спросить можно ли сжать файлы лучше чем ultra ? Может быть 7z'ом запаковать и можно чтобы он извлекал из файла .7z но показывал как обычную распаковку программой ?
|
Aquila, Inno и сам использует 7z, так что смысла нет
|
R.i.m.s.k.y., А файлы .arc - это что ? Замечал что есть инсталяторы inno setup с использованием этих архивов.
|
Aquila, не поверишь - freearc!
но лично я не вижу смысла в нем, места занимают не намного меньше, а калорийности требуют сильно больше, при установке требуется для распаковки рама, место на жеском и время. Это не твой выбор, бро! кстати про 7зип: я делал дистр Ведьмака1 на инно с максимальным сжатием, и для сравнения сжал эту же папку 7зипом с теми же настройками, так вот инно утоптал на 100 метров сильнее, хотя при общем весе почти 9 гиг эти 100 метров что слону булочка |
R.i.m.s.k.y., Спасибо за подробное пояснение :up
|
Aquila, да пожалста!
"полезное сообщение" давануть не забудь! |
Aquila,
настройка стндартных средств на максимальное сжатие сожми с разными размерами словаря и узнаешь что тебе лучше Compression=lzma2/ultra64 LZMAUseSeparateProcess=yes LZMAMatchFinder=BT LZMANumFastBytes=273 LZMADictionarySize=262144 ///LZMADictionarySize=131072 InternalCompressLevel=ultra64 ///SolidCompression=true MergeDuplicateFiles=true ___________________________________________________________ сделал деинсталятор с выбором компонентов: 1. в основной установщик вписать это 2. сам деинсталятор проверено работает как часы |
Johny777, тож вариант, но для разбора компонентов можно использовать ключ реестра \\\Registry\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{AppName}_is1\Inn o Setup[colon] Selected Components
ну и SolidCompression=true лучше не комментировать, а в секции Files для мелких файлов указывать флаг SolidBreak Ну и можно добавить CompressionThreads=4 |
Цитата:
Цитата:
|
Johny777, ну вот и указывай в каждой новой строчке с другой компонентой флаг SolidBreak
This flag instructs the compiler to finalize the current compression stream and begin a new one before compressing the file(s) matched by Source. This allows Setup to seek to the file instantly without having to decompress any preceding files first. May be useful in a large, multi-component installation if you find too much time is being spent decompressing files belonging to components that weren't selected. |
Здравствуйте.
помогите пожалуйста разобраться в проблеме. сделал инсталятор с возможностью выбора компонентов, установка и все манипуляции проходят нормально, а вот удаление программы происходит корректно, только при условии, что были выбраны все компоненты, иначе Internal error: Cannot find utCompiledCode record for this version of the uninstaller |
ToBeLife, код клещами вытаскивать?
|
извиняюсь
|
Уважаемые ГУРУ Инно Скриптов! Очень нужна Ваша помощь плохо знающего Скрипты Инно, помогите разобраться.....
Вот часть моего скрипта: Запаковываю файл при помощи FreARC и переименновываю в data1.arc Затем делаю компиляцию, она проходит без ошибок! После чего пытаюсь установить, выдаёт ошибку Не найдено ни одного файла, указанного для ISArcExtract Помогите пожалуйста разобраться во всем этом... может я не правильно вставляю или еще где-нибудь надо.... |
ToBeLife, я криминала не вижу, но слова for this version of the uninstaller наводят на мысль что в {app} лежат не те unins000.exe & unins000.dat.
Проверь нет ли в папке Source левых деинсталляторов. MarkusEVO, если плохо знаешь инно зачем за фриарк взялся? пакуй стандартными средствами инно, он и жмет хорошо (выше отличные настройки сжатия) и поддерживает разбиение на диски Я вот как с фриарком бороться не знаю, картинки всятавлять не умею, и прекрасно себя чуйствую! |
Цитата:
я разобрался в чем проблема... проблема была что я забюыл указать директорию OutputDir=. в самом начале =) |
всё довёл денинсталятор до финальной стадии
выполняется так 1. поверка наличия уникального файла и создание соответствующего чекбокса (R.i.m.s.k.y., список компонентов из реестра взять не могу, тк у меня их нет. везде вручную созданные чекбоксы и переключатели, привязанные к секции файлов через Check) 2. при отмеченном чекбоксе(-ах) выполняется [InstallDelete] и удадяются уникальные файлы 3. шаг ssPostInstall, на котором удаляются "полуэксклюзивные" файлы, относящиеся только к 2 или 3 из 4 имеющихся (в моём случае) компонентов 4. шаг ssDone, нак котором проверяется отсутствие всех компонентов и если их нет удаляется основная папка и общие файлы, относящиеся ко всем 4 компонентам MarkusEVO, при использовании внешних упаковщиков ты можешь потерять целую пачку функций, а точнее умных флагов для секции файлов, как наприер пропуск уже существующих файлов если только не настроить командную строку фриарка, чтобы при наличии приложения в реестре находил путь и пропускал их вот у меня после распаковки 16 гигов из которых около 5 общие. как представлю себе, что он каждый раз перезаписывает, то что установлено.... и тот же фриарк жмёт не намного сильнее 7-zip, Не понимаю, что его все так лелеют а как быть с флагами говорящими, что этот файл для 64 битной системы, а этот для 32-х? |
R.i.m.s.k.y., Cпасибо. Нашел ошибку. следовало удалить секцию [uninstalldelete]. Благодарствую.
|
ToBeLife, а она то каким паровозом?
|
Всем добрый вечер!Помогите пожалуйста! Я никак не могу сделать разбиение на диски в скрипте ISDone. Я пробовал сделать так, как написано в справке, но у меня нечего не получается.Просто пишет что FreeArc-архив не найден.Помогите пожалуйста решить проблему.И не получается с распаковкой архивов в зависимости от выбранных компонентов.Наверно что-то со скриптом не так(делал как сказано в справке).
Вот скрипт - http://rghost.ru/36901450 |
всем привет,я не один год использую инно,конечно простые скрипты,без наворотов.Постепенно коплю знания.Скачал кучи примеров ,программ,архивов тем,но там или или.Вчера наткнулся на скрипт прогресс бар+размер текущего файла,но проблема в том,что он пишет размер в байтах например 12345678 байт,как сделать отображение в было мегабайтах например 25.8 МБ?Вот секция код моя
Конечно этот вопрос затерт до дыр,но на чтение архивов форума уйдет неделя.Как я понял надо изменить тут SizeLabel.Caption:= IntToStr(size) + ' байт'; что то?константу const oneMB=1024*1024; добавил сам,думал поможет мне. |
Вложений: 1
Совсем забыл,вот скриншот установки моего простого инсталлятора,с этой проблемкой.Сразу прощу прощения ,если кому-то показалось,что я хочу что бы всё сделали за меня,нет,просто подскажите новичку,что нужно изменить или добавить в какую строку для решения.Заранее благодарен знатокам,нажму полезное сообщение)
|
FX-DENIS, а как ты сделал скрипт прохождения процентов (6% в окне) скинь.
|
Добрый день. Есть скрипт, который ставит приложение, а так же dll расширением проводника. После деинсталляции папка приложения остается в Program Files пустой, т.к. расширение провдоника удалились при перезагрузке. Мне очень нужно удалить и папку приложения тоже. Спасибо.
|
|
al70,
Код:
procedure RD(Dir:string); |
R.i.m.s.k.y., на Win 7 x64 не помогло. На XP отработало без проблем. Может еще какой способ есть? Но все равно спасибо
|
Johny777, спасибо, попробую.
|
Цитата:
Как вариант вставь MSGBox Код:
... |
Johny777, у меня на совсем новой машине не запускался инсталлятор. Закрытый вариант - значит не для публики.
P.S. Скучал по форуму. Буду иногда появляться, если нужен вам. :) |
Rikill,
забил, тк на день раз 20 запускаю для теста основы и очень часто оба примера перестают работать через несколько повторных запусков у меня шрифт только в 6-8 местах использовался (как в главном меню халфы 2 с лямбдой) вот наглядный пример заменю на картинки разницы не будет никакой, а качество поднимется :) Цитата:
единственное, что для меня остаётся нерешённой проблемой (на руборде тоже спрашивал, как и здесь) - как добавить прокрутку скроллбокса колесом мыши вот такого например http://rghost.ru/36630976 |
Цитата:
1. Совсем не обязательно рассылать сообщение WM_FONTCHANGE всем top-level окнам, достаточно послать форме. А можно и вообще Send/PostMessage убрать. 2. FontExists лучше делать до вызова AddFontResource, т.к. шрифт может быть уже установленым в системе и повторное его добавление это не есть хорошо. 3. Булев флаг IsCustomFontInstalled лишний. 4. Все это лучше не делать в функции InitializeSetup, когда формы еще нет. 5. Применить для уверенности функцию AddFontResourceEx, зная что шрифт будет использован только вызываемым приложением. |
El Sanchez, одна беда - шрифт остается во временной папке. А рабочесть примера подтверждаю - у меня как раз такая система, на которой классический пример использования кастомного шрифта не работает, не зависимо от степени убитости системы. Повисает оповещательное сообщение. Немного исправляло положение замена SendMessage на PostMessage но результат нестабилен. Причина, как объяснили, какая-то программа ловит это сообщение и не пересылает его дальше. От степени убитости системы, повторюсь, это никак не зависит. Виноват криворукий программер, который написал какую-то обслуживающую утилитку, по всей видимости.
|
Здравствуйте, помогите поправить скрипт (с распаковкой arc), надо что бы он нормально распаковывался, а то он только сам архив расспаковывает, а надо что бы ещё он всё что в архиве расспаковывал. Пожалуйста помогите!!!!
[Setup] AppName=Sigerous Mod для COP AppVerName=Sigerous Mod v2.2 DefaultDirName=stalker InfoBeforeFile=embedded\InfoBefore.rtf WizardImageFile=embedded\WizardImage.bmp WizardSmallImageFile=embedded\WizardSmallImage.bmp Compression=zip [Languages] ;Name: rus; MessagesFile: compiler:Languages\Russian.isl [Files] Source: *.arc; DestDir: {app}; Flags: ignoreversion Source: unarc.dll; DestDir: {tmp}; Flags: dontcopy Source: InnoCallback.dll; DestDir: {tmp}; Flags: dontcopy [Icons] Name: {group}\Uninstall; IconFilename: {app}\unins000.exe; Filename: {app}\unins000.exe [code] const PM_REMOVE = 1; function PeekMessage(var lpMsg: TMsg; hWnd: HWND; wMsgFilterMin, wMsgFilterMax, wRemoveMsg: UINT): BOOL; external 'PeekMessageA@user32.dll stdcall'; function TranslateMessage(const lpMsg: TMsg): BOOL; external 'TranslateMessage@user32.dll stdcall'; function DispatchMessage(const lpMsg: TMsg): Longint; external 'DispatchMessageA@user32.dll stdcall'; procedure AppProcessMessage; var Msg: TMsg; begin while PeekMessage(Msg, WizardForm.Handle, 0, 0, PM_REMOVE) do begin TranslateMessage(Msg); DispatchMessage(Msg); end; end; type TFreeArcCallback = function (what: PAnsiChar; int1, int2: Integer; str: PAnsiChar): Integer; function WrapFreeArcCallback (callback: TFreeArcCallback; paramcount: integer):longword; external 'wrapcallback@files:innocallback.dll stdcall'; function FreeArcExtract (callback: longword; cmd1,cmd2,cmd3,cmd4,cmd5,cmd6,cmd7,cmd8,cmd9,cmd10: PAnsiChar): integer; external 'FreeArcExtract@files:unarc.dll cdecl'; var ProgressBar: TNewProgressBar; ExtractFile: TNewStaticText; Button1: TButton; Cancel: Integer; procedure InitializeWizard(); begin ProgressBar := TNewProgressBar.Create(WizardForm); ExtractFile:=TNewStaticText.Create(WizardForm); with WizardForm.ProgressGauge do begin ProgressBar.Left := Left; ProgressBar.Top := Top + ScaleX(55); ProgressBar.Width := Width; ProgressBar.Height := Height; ProgressBar.Parent := WizardForm.InstallingPage; ProgressBar.max := 1000; ProgressBar.Position := 0; ExtractFile.parent:=WizardForm.InstallingPage; ExtractFile.autosize:=false; ExtractFile.Width := Width; ExtractFile.top:=Top + ScaleX(35); ExtractFile.caption:='Распаковка архива FreeArc'; end; end; procedure Button1OnClick(Sender: TObject); begin Cancel := -1; end; function FreeArcCallback (what: PAnsiChar; int1, int2: Integer; str: PAnsiChar): Integer; var percents: Integer; begin if string(what)='filename' then //ExtractFile.Caption:=str else if (string(what)='progress') and (int2>0) then begin percents := (int1*1000) div int2; ProgressBar.Position := percents; ExtractFile.Caption:='Распаковано '+IntToStr(int1)+' из '+IntToStr(int2)+' мб ('+FloatToStr(percents/10)+'%)'; end; AppProcessMessage; Result := Cancel; end; procedure ExtractFreeArcArchive(arcname: String; destpath: String); var callback: longword; res: Integer; begin AppProcessMessage; callback:=WrapFreeArcCallback(@FreeArcCallback,4); //FreeArcCallback has 4 arguments Cancel := 0; try res := FreeArcExtract (callback, 'x', '-o+', '-dp'+destpath, '--', arcname, '', '', '', '', ''); if cancel<0 then MsgBox('Installation cancelled', mbInformation, MB_OK); if res<0 then MsgBox('Decompression failed with error code '+IntToStr(res)+'!', mbError, MB_OK); Button1.visible:=false; except MsgBox('Decompression failed!', mbError, MB_OK); Button1.visible:=false; end; DeleteFile(arcname); end; procedure CurStepChanged(CurStep: TSetupStep); var app: String; begin If CurStep=ssPostInstall then begin Button1:=TButton.create(WizardForm); Button1.parent:=WizardForm; Button1.width:=135; Button1.caption:='Cancel installation'; Button1.left:=260; Button1.top:=WizardForm.cancelbutton.top; Button1.OnClick:=@Button1OnClick; app := ExpandConstant('{app}'); ExtractFreeArcArchive(app+'\data.arc', app); ExtractFreeArcArchive(app+'\data.arc', app); end; end; |
Добрый ден, перерыл все 3 Предыдущие ветки и эту, так и несмог найти ответна, вроде, элементарный вопрос:
как сделать, чтобы после установки, открывалась моя страничка в интеренте? Код:
[Run] |
Всем добрый день!Помогите пожалуйста! Я никак не могу сделать разбиение на диски в скрипте ISDone. Я пробовал сделать так, как написано в справке, но у меня нечего не получается.Просто пишет что FreeArc-архив не найден.Помогите пожалуйста решить проблему.И не получается с распаковкой архивов в зависимости от выбранных компонентов.Наверно что-то со скриптом не так(делал как сказано в справке).
Вот скрипт - http://rghost.ru/36901450 |
fackir,
Код:
[CustomMessages] |
fackir, или так
Код:
procedure CurStepChanged(CurStep: TSetupStep); |
nik1967, это хреновый пример, сайт откроется не спрашивая
А за такое надо насмерть закармливать печеньками |
Здравствуйте, помогите поправить скрипт (с распаковкой arc), надо что бы он нормально распаковывался, а то он только сам архив расспаковывает, а надо что бы ещё он всё что в архиве расспаковывал. Пожалуйста помогите!!!!
|
R.i.m.s.k.y., nik1967, Спасибо за оперативный ответ, седня попробую
|
fackir, nik1967, R.i.m.s.k.y.,
мне кажется вот так проще всего (через гугл нашёл) [Run] Filename: http://forum.oszone.net; Description: Посетить форум OSzone.net; Flags: nowait postinstall shellexec правда не знаю насколько нужен флаг postinstall |
Цитата:
Без него - см выше про печеньки |
R.i.m.s.k.y.,
да я знаю :) просто из этого примера fackir трудно понять [Run] Filename: "http://mi_site.ru/" может ему не нужен чекбокс и он хочет как у K-Lite кодек пака Цитата:
я правильно понимаю, что в архиве лежат ещё архивы. которые должны быть распакованы? |
Johny777, нет он сначала распаковывает сам arc архив а потом файлы внём, вот проблема с распаковкой файлов
|
Цитата:
|
Цитата:
|
|
Лександер, я пример скачал с сайта http://freearc.org/ru/InnoSetup.aspx
|
Покажи мне оригинал примера, в котором файлы архивов пихаются в инсталлятор. Я лично из множества примеров, не нашел ни одного.
Цитата:
|
Лександер, внизу в самом, а сжатие в arc я сделал так как он лучше сжимает, и архивы в инстал много кто пихает
|
Лександер, что ты ржош??? если бы не пихали не создавали бы эти все скрипты!!!!!!!!! ты вместо того что бы ржать помоги всё исправить!!!!!!!
|
|
Лександер, так перепиши пожалуйста мой скрипт
|
Цитата:
|
by_gangster,
Цитата:
не нужно зачем сначала распаковывать архив из инсталла, а потом его же ещё раз извлекть в конечную папку это напоминает мне один репак, который мне попался. Там для установки где то 25 гигов нужно было. Причем никаких компонентов и это был распак Orange Box с весом больше 10 гигов и многими тысячами файлов. двойная распаковка была :( ____________________________________________________________________________________________________ ______________________ #define ArcLocation "{src}\*.arc" красного цвета определяет расположение архивов по отношению к инсталлятору сейчас они лежат рядом с ним тк у меня нет части твоих файлов, то я закоментировал некоторые строки ты их у себя раскомментируй (зелёного цвета) эта версия не самая новая, но рабочая и как понимать вот это? DefaultDirName=stalker может имелось в виду DefaultDirName={pf}\stalker |
Johny777, 1 спасибо, 2
Цитата:
|
by_gangster,
не смешно...:diablo: :diablo: ты мой пост читал? Цитата:
ты вообще скрипт просматривал? и Цитата:
тебе и их нужно ужимать по максимуму? да и вообще Цитата:
у тебя стояло вообще zip |
repacksman, не понимаю смысл выкладки его
|
valyok666, Может ктото не может из крінкелса скачать
|
repacksman, смотрю русским языком ты не блещешь, как и Vasyakrn
|
valyok666, Я и есть vasyakrn. Мне просто профиль взломали
|
У меня такой вопрос - можно ли как-то изменить через код Description в списке компонентов?
И маленький вопросик: на последней странице у меня две птички "посетить сайт", если выбрать обе-две, открывается в броузере только первая. Я так понимаю браузер не может переварить сразу два урла и открывает первый переданный. Как это обойти? |
Johny777, дело в том что я не понимаю куда и что вписывать, и пока разбираюсь с этой прогой...
|
Цитата:
|
блин
за такими спорами про меня забудут Цитата:
|
R.i.m.s.k.y., По второму вопросу - на птичках не стоит фалаг ожидания?
|
Цитата:
Код:
Filename: http://www.SVP-Team.com; Description: Зайти на сайт SmoothVideo Project; Flags: shellexec skipifsilent postinstall nowait Unchecked |
Люди да помогите создать инсталятор с максимальным сжатием, плиииииззз :help: :help:
|
by_gangster, парой страниц назад были настройки на максимальное сжатие
|
R.i.m.s.k.y., могу порекомендовать использовать способ nick1967 создавать чекбокс и через шеллэкзек запускать.
Цитата:
Цитата:
|
R.i.m.s.k.y., да чё я тока не делал, я весь форум перерыл, Compression=lzma почему он сжимает лучше чем lzma/ultra и т.д надо МАКСиМАлЬНО :help:
я ставил lzma2/ultra64 но инсталятор после этого стал ещё больше а если lzma то чуть-чуть поменьше становится Возможные значения: zip zip/1 до zip/9 bzip bzip/1 до bzip/9 lzma lzma/fast lzma/normal lzma/max lzma/ultra (рассмотрите требования к памяти ниже перед использованием) lzma/ultra64 (рассмотрите требования к памяти ниже перед использованием) lzma2 lzma2/fast lzma2/normal lzma2/max lzma2/ultra (рассмотрите требования к памяти ниже перед использованием) lzma2/ultra64 (рассмотрите требования к памяти ниже перед использованием) none |
Цитата:
Догадываюсь что можно, но я абсолютно не знаю названия всех этих внутренностей |
repacksman, молодец что в твоем сайте много готовых скриптов, но какой смысл здесь выкладывать?
|
можно. if WizardForm.RunList.Checked[0] then
|
Цитата:
я вот наваял но ругается что неизвестный Items Код:
if CurStep=ssDone then begin |
только нужно это вешать не на ssDone а в NextButtonClick:
Код:
function NextButtonClick(CurPageID: Integer): Boolean; |
Лександер, блин, последний список называется RunList, а я влупил FinishedPage
Теперь работает |
Цитата:
Цитата:
|
Цитата:
|
Люди да помогите чайнику :sorry: исправить хоть и тупой но скрипт, нодо что бы он распаковывал arc архив, и всё что внём. Я сделал что бы он расспаковывал сам .arc архив но он не распаковывает всё что внём,помогите поправить :dont-know
Вот скриншот Код:
[Setup] |
R.i.m.s.k.y.,
вот как это реализовано Inno Setup GameScript Generator от South http://forum.csmania.ru/viewtopic.php?t=4688 |
Johny777, спасибо, но я уже сделал как выше привел пример
|
alert30, Просто рекламма
|
Цитата:
|
Archives = '{#ArcLocation}'; как сдесь указывать расположение архивов arc ???
|
by_gangster,
ты прости, но это уже не в какие ворота кажись я писал вот это Цитата:
Цитата:
будь немного внимательнее! :butcher: |
by_gangster, используй исдоне проще в обращении))
|
Johny777, просто я ничего в нём не изменял но он выделяет мне строку Archives = '{#ArcLocation}';
|
by_gangster, т.е. код ошибки писать необязательно, типа сами догадывайтесь?
но раз выделает то скорее всего она неопределена # define ArcLocation "путь до архивов" Или путь неверный Хосподя, сколько же этих репаков ждалкера развелось |
R.i.m.s.k.y., а как надо правильно указывать путь? :sorry:
|
by_gangster, ну это уж тебе решать где что ты раскладываешь
Ты ж скрипт пишешь, не я |
R.i.m.s.k.y., я просто вообще нифига не понимаю, ты хоть пример какой приведи :(
|
by_gangster, я с фриарком, исдоне и формами никак, сам спрашиваю
Вон выше рожал кусок чтобы через CurStepChanged открывалось пара сайтов. Просто да, но не для меня |
R.i.m.s.k.y., понятно, извени....
|
by_gangster, да не за что
ты бы лучше положил скрипт полностью и ошибку компилятора, вдруг кто помочь захочет Кстати. как правило мимо проходящие отвечают если видят сразу в чем проблема, а вот вникать ломы - проходят мимо И видеть сразу позволяет полностью выложенная инфа по ошибке |
R.i.m.s.k.y., да я вылаживал на этой стр
|
всё люди нашёл нормальный скрипт, только помогите сделать так что бы он после распаковки arc архивов удалял сами архивы,
вот скрипт Код:
[Setup] |
Всем Доброго времени суток! Меня интересует такой вот вопрос: Как сделать так чтобы путь установки выбирался по записи в реестре? Если это уже где - то решалось ткните меня носом туда=) Заранее премного благодарен!
|
Snap_Suzun,
|
Snap_Suzun, как то так
Код:
[Setup] |
R.i.m.s.k.y., а по моему вопросу не знаешь как сделать??
|
by_gangster, а скажи, зачем тебе удалять архивы фриарк, если у тебя в скрипте прописано
Код:
Archives = '{src}\*.arc'; // укажите расположение архивов FreeArc; для внешних файлов строку в [Files] добавлять необязательно Папка, в котором находится инсталлятор. Цитата:
|
|
R.i.m.s.k.y., nik1967,
можно так проще AppID=myAppSuperID DefaultDirName={reg:HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{#SetupSetting("AppID") }_is1,InstallLocation|{pf}\program} каждый раз при повторной установки ищет саму себя же. |
nik1967, после распаковки архивов, я хочу что бы они удалялись, что бы места не занимали, так что как сделать???
|
by_gangster, епт у тебя вызов в скрипте {src}\*.arc!!11
ты запустишь инсталлер, он поставит и потом добросовестно смахнет исходник!!! |
R.i.m.s.k.y., ну так бл**ть объясни чайнику как всё по нормальному сделать :tomato2:
|
Цитата:
|
by_gangster,
|
а куда вписывать доп. код????
nik1967, я уже по своему сделал |
nik1967, ты случайно не знаешь???? :)
|
Цитата:
|
nik1967, сдесь я нашёл Кликабельная текстовая http-ссылка в левом нижнем углу инсталлера, так как второй [_Code] вписать????
|
by_gangster,
|
nik1967,ругается SiteLabel.Font.Color:=clRed
|
Цитата:
|
nik1967, вппрос к by_gangster, какое инно у тебя стоит?
|
valyok666, innoultra
|
by_gangster,
скомпилировал скрипт с предыдущей страницы никакой ругани вообще у меня стоит расширенная (есть в инно ультра) ANSI версия |
Johny777, я незнаю вот мой скрипт
Код:
; installer by_gangster |
by_gangster,
ты меня в конец запутал в нём нет SiteLabel, то бишь кликабельнй ссылки и опять же всё компилируется без проблем ответь мне пожалуйста зачем ты кладёшь архив FreeArc в инсталлер? Source: *.arc; DestDir: {app}; Flags: dontcopy |
Johny777, лучше сжимает, а dontcopy а поставил для того чтобы он не копировал архивы, а расспаковывал их, мне бы ещё кликабельную ссылку и было бы вообще супер :up
Johny777, а всё нормально извени пожалуйста это я тупанул всё работает :clapping: |
Цитата:
ерунда прекращай это плюс внешних архиваторов в том, что их не нужно класть в инсталлер, он их снаружи "цепляет" и распаковывает ты лишился этого плюса |
а как две ссылки сделать?????
Johny777, поверь мне меньше |
подзавис я со списком задач tasks
С компонентами удобнее, их можно прочекать и засветить еще на шаг InitializeWizard А вот с таксками так не получается. Мне нужно чтобы в зависимости от выбранного на странице компонентов компонента элемент task или не снималась галочка или наоборот снималась. Простую часть чтобы галочка не снималась я сделал Код:
procedure InitializeWizard(); Как обойти такое? (описал как смог) |
Цитата:
R.i.m.s.k.y., вот так я делаю с кастомными чекбоксами ты можешь приспособить их к элементам тасклиста и компонетлиста? procedure make04 (Sender: TObject); begin if Component_CheckBox.Checked = false then (или RadioButton) begin Task_CheckBox.Checked:= false; end else begin task_CheckBox.Checked:= true; end; end; |
Johny777, прости за наглость :unsure: , та как сделать две ссылки?
|
Цитата:
На каком шаге ты это делаешь? |
|
Johny777, спасибо :)
|
Цитата:
насколько я знаю у компонетов есть номера как [0] или [1] вот к ним если можешь привязать, что всё заработает Цитата:
процедуры и функции сверху записаны конкретно действие выше у меня для на странице компонетов, когда один чекбокс относится только к одному радиобаттону, но думаю не проблема выполнять его для двух страниц. единственное что у меня записано в InitializeWizard это main_CheckBox.Checked:= false; могу дать скрипт, если нужно сам посмотришь |
Johny777, да я пробовал вызывать TaskChek который галки расставляет раньше страницы Tasks - ошибка, хотя с компонентами такое прокатывает
CurPageID=wpSelectTasks тоже не прокатывает |
дайте пожалуйста ссылку на форум ну или там где обсуждают bass.dll то есть музыка в инсталяторе
|
Johny777, еслибы было так просто, там еще надо и контролировать в системе наличие других компонент (того же хаали чтобы второй раз принудительно не поставить)
но я уже починил Спасибо за внимание Код:
procedure TasksCheck(); |
R.i.m.s.k.y.,
вот смотри что накопал у себя в примерах обрати внимание на самый конец |
Johny777, ну у меня так и сделано, только номера не жоские а WizardForm.ComponentsList.Items.IndexOf('Diablo 2')
|
R.i.m.s.k.y., ты знаешь как этот код можно вписать в мой???
Код:
[_code] |
|
кто знает, как вставить это в скрипт??? (проигрывание музыки)
Код:
//************************************************ [Начало - Музыка] ***************************************************// |
by_gangster, Всё до простоты просто))подумай логику включи и поймешь!Программирование это не токо копипастой вставить и всё здесь надо думать)
|
valyok666, я же только учюсь программированию, так что пока я чайник в этом, и прошу помочь :cool:
|
Это разве программирование?)
Цитата:
|
Добрый день. У меня возникла странная ошибка.
После вызова ф-ии из dll перестает работать кнопка "Back". Если в скрипте закоментировать этот вызов - вся навигация между страницами мастера работает правильно. Есть какие-то идеи в чем может быть проблема? |
al70, может unloadDLL не хватает после вызова функции из dll?
|
Здравствуйте программисты! Скажите пожалста, можно ли прописать скрипт, который полсе закрытия установочного файла, откроет какой либо файл (например: *.docx, *.exe, *.rar, *папку, *mp3.)?
|
rasim933, в секции Run указываешь файл например: *.docx, *.exe, *.rar, *папку, *mp3. и флаг shellexec
|
Я извиняюсь, но можно подробней??
|
rasim933,
Код:
[Run] |
Итак, попробовал как вы сказали, что-то неполучилось.
Прописал вот так: Код:
[Run] В конце вот такая ошибка: Что нетак? Где ошибка? |
rasim933,
ну в ошибке написано, что файл найти не может. Значит путь не верный {app} это константа директории установки |
Всмысле через {app} я должен прописать путь к нужному файлу? Или перед вот этим знаком "\" должен прописать путь?
Пример: Код:
Filename: "{app}C:\User\User\Desctop\Рабочий стол\docx.docx"; Description: "{cm:LaunchProgram,Документ с информацией о запуске игры.docx}"; Flags: shellexec |
rasim933,
а где лежит файл? рядом с установщиком или он вместе с данными твоего приложения копируется в директорию установки? Цитата:
{app}\docx.docx это директория установки (куда бы ты не ставил) или {userdesktop}\docx.docx или {commondesktop}\docx.docx -пользовательский или общий рабочий стол {src}\docx.docx - значит, что файл лежит рядом с setup.exe или {src}\MyOuterFolder\docx.docx значит, что в папке, которая расположена рядом с установщиком {userdocs} это "мои документы" плюс в том что полный путь происывать не надо (C:\User\User\Desct...), тк он заменяется константой, которая и есть путь важно в твоём случае ставить флаг (уже стоит) shellexec, тк файл открывается внешней программой типа ворда констант много что конкретно ты хочешь я не знаю вот тебе справка на русском языке. http://rghost.ru/37012445 Посмотри раздел "Константы" и "секция скриптов ---> Секции [Run]" |
Я хочу сделать вот так: . Но, при нажатии "завершить", инсталятор пытается открыть "файл c инфорамацией о запуске игры, возможных ошибках....." и выходит вот эта ошибка:
Код: Код:
[Run] |
rasim933, значит константы ты не посмотрел
Код:
[Run] |
Цитата:
|
rasim933, читайте шапку от НАЧАЛА до КОНЦА (извените за капс, но для тех кто тупо не умет работать со скритпами).
|
rasim933, docx файл конвертируй в rtf
а вообще у тебя херовые репаки будут выходить тк ты не думаешь об остальных |
доброе время суток. у меня вот какой вопрос: как сделать сообщения не в виде MessageBox-а, а в виде окна при удалении.
хочу чтоб пользователь сам выбирал параметры которые я укажу при удалении. |
Temyraz@fb, страниц 10 назад было, на примере халфы2 был инсталлер и деинсталлер с выбором чего удалять
|
Лександер, я на этим поработаю. Спасибо за идею.
R.i.m.s.k.y.Преконвертирую. Репаки? Я не делаю репаки. Сейчас я делаю игру для своей коллекции. |
Пределал всё сначала. Написал всё поновому.
Код:
[Run] |
rasim933,
попробуй кавыки добавить Код:
Filename: """{src}\TXT\Read Me (for 2003).doc"""; Description: "{cm:LaunchProgram,файл с ифой о запуске игры (2003)(PS1)}"; Flags: nowait postinstall skipifsilent |
|
rasim933,
сотри везде все кавычки я конечно могу ошибаться, но у меня их нигде нет и всё работает вот так Filename: {src}\TXT\Read Me (for 2003).doc; Description: {cm:LaunchProgram,файл с ифой о запуске игры (2003)(PS1)}; Flags: nowait postinstall skipifsilent |
Подскажите пожалуйста, как скрыть информацию о размере файлов на странице SelectComponentsPages там при выборочной установке, автоматически вычисляется размер каждого варианта установки и прописываются размеры, а мне нужно, чтобы то место, где эти размеры пишутся, было чистым?
В документации и тут на этих ветках, ниче подобного ненашел. мне хотябы знать, как это поле обзывается, чтобы его очистить |
fackir, ShowComponentSizes=no
|
Цитата:
и еще вопрос как через inno сделать так чтоб удалить базу и пользователя в postgres? (название базы и имя пользователя известна, пароль запрашивается у пользователя) |
|
наверное я ослеп или чего та не понимаю.
вот конкретный код [code] # Код:
procedure DeleteBitmaps(ADirName: string); |
Temyraz@fb,
я так понимаю сохранить нужно это? CopyDir(ExpandConstant('{app}\files'),ExpandConstant('Путь сохранения бекапа')); CopyDir(ExpandConstant('{app}\license'),ExpandConstant('Путь сохранения бекапа')); создаёшь чекбокс на странице выбора компонентов R.i.m.s.k.y. сказал же через CurStepChanged вот так оно и будет выглядеть для бэкапа взял шаг ssInstall, те перед установкой (удалением) только это для удаления скрипт. Поэтому вместо {app} используй {src} путь сохранения потом задашь в коде? Он статичный? |
путь сохранения пользователь сам укажет
|
Цитата:
как это работает? одного это достаточно? ExpandConstant('Путь сохранения бекапа')) |
Вообще бекап будет делаться в деистоляторе. т.е. когда пользователь начинает удалять программу, у него система будет спрашивать делать бекап? если он отвечает "да" , то система будет спрашивать куда сохранить бекап. система сохранить именно там где указал пользователь
|
Temyraz@fb,
но учти у меня в примере этого нет там чекбокс отмечается без MsgBox -а а примеры копирования и не только есть в коллекции скриптов innoultra.ru/downloads/Scripts.rar |
да смотрел я эти скрипты, у меня почему та не хочет во время удаления появляться страницы. только сообщения.
а в MsgBox может пользователь выбрать путь сохранения бекапа? |
Цитата:
как я не знаю |
а у кого можно спросить? реально срочно нужно
|
Temyraz@fb, у кого можно спросить подписаны на эту тему
ждите ответа, ждите ответа... |
Temyraz@fb,
путь можно выбрать через эдит и string, но мне пока далеко до такого, потму что путь нужно получить из TFolderTreeView а чтобы появлялось окно с выбором директории это нужно создать форму при нажатии на кнопку (такое есть) и в ней TFolderTreeView, как на странице выбора директории установки попробовать могу, но не факт, что получится. Мне в будущем нужно тоже сохранёнки и достижения пред удалением сохранять, но путь хотел сделать статичным на рабочий стол. Цитата:
|
Цитата:
|
Пожалуйста, помогите решить задачу.
Имеем код: Код:
2. В идеале хотелось бы кое-что усовершенствовать: вместо последнего простого предложения "скопировать в папку дополнения" в начале проверить, есть ли файлы в папке {src}\add\. Если эта папка пустая, то предложить (Если "ДА") указать путь до папки с дополнениями или (Если "НЕТ") вывести сообщение (оно в коде уже имеется), т.е. "Скопируйте дополнения в папку {reg:HKLM\SOFTWARE\MyProg\Inform,InstallPath} после установки" |
Цитата:
про указать папку выше пример как делать свою форму с выбором папки |
Цитата:
|
vitl, почитать в справке Installation order
по сути: выполнять после страницы wpSelectDir, как вариант проверять на странице wpSelectComponents или повесить на NextButtonClick |
Стёр везде ковычки. Попробовал прописать полный путь вот так:
Код:
[Run] Кто нибудь знает, как сделать так, чтоб при повторной установке игры (без её удаления), появлялось сообщение об перночальном удалении старых файлов игры? Может об этом где-то написано? |
Цитата:
для документа ворд не хватает флага писал тебе раньше Цитата:
Цитата:
Сообщение (и не только его) вывести можно, что установлена или в сообщении написать чтоб удалили? или чтоб после сообщения вызывался деинсталятор? |
rasim933, флаг shellexec потерял
написано в шапке - сборник вопросов Как прогу то будешь определять? Есть ли реперные точки типа значения в реестре или спецфайликов? |
Флаги исправил. О результате, как-то неочень. Нельзя ли сделать так, чтоб можно было выбирать что именно открыть?
Попробую снова обьяснить: к примеру я запустил установщик игры, установил игру. Игру не удалил, и снова запустил инсалятор той же игры. Мне вышло собщение: Вот так сделать хочу. Сможете подсказать? R.i.m.s.k.y., нет вроде. Всё что я делаю, это пытаюсь создать установщик который будет правильно распаковывать эмулятор PS1 с игрой внутри. Я думаю, что смогу написать ключи реестра если надо. А к чему такой вопрос? |
rasim933, еще раз - сборник вопросов в шапке
ссылки не кусаются |
Всмысле вот это: Показать/скрыть: Справка, руководство, примеры:?
Или это: Inno Setup [все вопросы] часть 1? |
|
Я непоуму что ты мне хочешь сказать. Обьясни да уже.
|
Там описано как можно запустить игру , какие ошибки могут встречаться и как их исправить, какая раскладка клавиатуры. везде картинки и текст
страница эпилога? |
rasim933,
на твоём месте я б положил бы эту инфомаци в пролог [Setup] InfoBeforeFile=info_before.rtf поддерживается .rtf или .txt |
Как мне кажется, придётся ведь ставить rtf - reader чтоб прочесть этот файл? Щяс попробую. А ты сам как переделываешь docx в rtf? И, перелеоываешь ли?
|
|
Так, с дейнсталятором вроде рабрасля. ТОлько что такое "генерируешь appid (например AppID={{0872DB47-24CB-4C7F-AC4B-E6EFC27BD244})" Это ключ реестра?
|
это уникальный идентификатор приложения. если нет оригинального ID, который предоставляет разработчик приложения, то можно его сгенерировать - в инно - инструменты-сгенерировать GUID. но лучше использовать оригинальный.
|
О, спасибо. Сделал, щяс пробую проверить.
|
Цитата:
rasim933 я тебе ужо говорил же, rft глотают все ОС все даже без прог-ридеров а AppID если не знаешь можно дернуть через регшот, ставишь прогу оригинальным инсталлятором и сморишь через регшот куда что прописывается |
С rtf проблема, незнаю как у R.i.m.s.k.y., но у мя картинки не показываются, а мне это не нравится. Оригинального инсталятора в природе нет. Я взял образ игры от PS1 запихал в ппку с эмулем. К сожалению я незнаю что ткое регшот.
Я сгенерировал этот AppID, вставил вроде куда нужно, 1 раз неполучилось. Снова пробую. |
Дефнстолятор наладал
|
Я собрал свою игру. Пришлось отказаться от выбора *.docx файлов. Они сами открываются после окончания установки.
Спасибо большое всем кто мне помогал. Без вас, я бы несправился! Нашол я где-то вот такой скрипт: Код:
[Setup] При первом скрипте всё работает нормально, но при мною переланном неработает: Код:
[Dirs] |
Цитата:
вот так у меня работает (сам использую у себя в скрипте). Может, что то лишнее... пофиг [Files] Source: "combine_icon.ico"; DestDir: {app}; Attribs: hidden system - это значок Source: "desktop.ini"; DestDir: {app}; Attribs: system hidden - заранее настроенный ини [Dirs] Name: "{app}"; Attribs: system; AfterInstall: CreateIni(); [_code] procedure CreateIni(); begin SaveStringsToFile(ExpandConstant('{app}\Desktop.ini'), ['[.ShellClassInfo]', 'IconFile=combine_icon.ico', 'IconIndex=0'], False) end; в самом файле ини вписано [.ShellClassInfo] IconResource=combine_icon.ico IconIndex=0 |
Попробую. В картинке ошибочно ввел create
[code] Код:
Var Johny777, я знаю, уже надоел. Но и на твой код тоже ругается: Код:
[Files] |
[_ code] не равно [code]
_ сотри и почему у тебя два раза [Files] в скрипте? |
|
всем привет!
Мне нужно из установщика создать архив mpq для варкрафта. Я решил использовать Stormlib.dll Для начала хотел создать просто пустой архив, даже это не получилось. На сайте создателя Stormlib.dll есть описание функции SFileCreateArchive Вот оно: bool WINAPI SFileCreateArchive( const char * szMpqName, // Archive file name DWORD dwFlags, // Additional flags to specify creation details DWORD dwMaxFileCount, // Limit for file count HANDLE * phMPQ // Pointer to result HANDLE ); А вот мой скрипт: function SFileCreateArchive(szMpqName:string;dwFlagds:Dword;dwMaxFileCount:Dword):BOOL; external 'SFileCreateArchive@files:StormLib.dll stdcall'; procedure CurStepChanged(CurStep: TSetupStep); begin if CurStep = ssInstall then begin repeat if not SFileCreateArchive (ExpandConstant('{src}\new.mpq'), 2, 4) then break; until true; end; end; Ошибок никаких не выдаёт, но и файл не создаётся... Пожалуйста, если кто разбирается, помогите :-) Вот ссылка на офф. сайт StormLib.dll: http://www.zezula.net/en/mpq/stormli...tearchive.html |
Johny7772 раза написанные [Files] что-то меняют? У меня нескольподобных повторяющихся штук.
Лександерисправлю. |
Лександер, будьте немного сдержаны в высказываниях...
al1511, с данной библиотекой не работал, делаю выводы прочитав по вашей ссылке... Цитата:
Код:
function SFileCreateArchive(szMpqName: PAnsiChar; dwFlagds: DWORD; dwMaxFileCount: DWORD; var phMPQ: THandle): BOOL; external 'SFileCreateArchive@files:StormLib.dll stdcall'; Цитата:
|
Здравствуйте. Возникла проблема - не удается создать в инсталляторе выбор типов установки. Мне нужно привести их к примерно такому виду:
Чтобы был именно такой вид. Но после изучения некоторой доп. литературы удалось лишь вот это: Мне нужно чтобы при выборе, например, установки полной версии устанавливались одни файлы, а при выборе портативной версии - другие. Так вот, может быть у кого найдется скрипт с подобным содержанием или ссылка на документацию, объясняющая решение данной проблемы? Или может кто-нибудь любезно согласится подсказать его? С Inno работаю почти полгода, но выбор типов установки делаю впервые, поэтому и вызвались проблемы. Спасибо. |
Ребят, нужно чтобы во время установки, путь автоматически определялся, т.е. что бы установщик искал нужную папку на компьютере и производил в неё установку. можно как нибудь реализовать?
|
андрейка43, можно, если путь к этой "нужной папке" прописан в реестре.
|
|
Можете подсказать как заставить инсталятор создать ярык нужного файла?
Так: Код:
Name: "{commondesktop}\Spider-Man 2. Enter Electro (PS1)"; Filename: "{app}\psxfin.exe"; Tasks: desktopicon |
Привет еще раз новому поколению знатоков инно.Так как помощи на мой вопрос не дали,то перечитал все 3 архива форума :drug: около 4тысяч страниц за 3 дня.Конечно ветераны как Serega,A1EXXX,BlackSelf и другие много помогали,писали людям примеры скриптов,но тогда было как,то доброжелательнее всё.И вот внимательно,долго перечитав архивы,я снова попрошу помогите,как сделать чтобы размер текущего файла был мегабайтах например 25.8 МБ ,вопрос я задал в сообщении и код скрипта тут и наглядный скриншотhttp://forum.oszone.net/attachment.p...5&d=1331153224 с обведенной проблемкой.Если не трудно выложете мой скрипт исправленный,буду оооочень благодарен. :sorry:
|
Цитата:
Цитата:
Цитата:
|
rasim933, так будет правильнее:
Код:
Name: "{commondesktop}\Spider-Man 2. Enter Electro (PS1)"; Filename: "{app}\psxfin.exe"; WorkingDir: "{app}"; Tasks: desktopicon |
Блин, никак не могу решить проблему с указанием рабочей папки в скрипте, вроде и скрипт правильно написан, но тем не менее строка в свойствах ярлыка всеравно пустая. Подскажите что не так????
|
Photon9, по-моему нету лагов.
|
Photon9, указанием рабочей папки в ярлыке? Если да, то вам нужно добавить WorkingDir: "{app}" в конец каждой строки, т.е. скрипт должен в вашем случае выглядеть примерно так:
Код:
Name: "{group}\Zumas Revenge"; Filename: "{app}\ZumasRevenge.exe"; WorkingDir: "{app}" |
Stable19, выручил спасибо, а я все первую строку мучил, перебрал уже н-нное количество вариантов, а оказывается вон оно что. Теперь ярлык вышел как положено, и не приходится в ручную дописывать
|
Вложений: 1
Цитата:
Код:
Source: F:\Test Drive Unlimited 2\*; DestDir: {app}; AfterInstall: ExtLog() на Progress() ; Flags: ignoreversion recursesubdirs createallsubdirs Скриншот прикрепил |
пацаны я тут видел страницу готовых скриптов и потерял ссылку на неё и немогу найти. скиньте плиз ссылку
|
Подскажите как обозначить , что исполняемый файл игры находиться не в самой папке где игра установлена, а находиться в подпапках
|
alex_13_15,
Description: Half-Life 2; Filename: {app}\common\half-life 2\hl2.exe; WorkingDir: {app}\common\half-life 2; Parameters: -steam -game hl2 -appid 220; ? Spell1999, в шапке темы оно? |
Как изменить иконку Uninstall.exe
|
люди помогите сделать две кликабельные ссылки пожалуйста
вот код Код:
; Installer by Evgeniy Bytaikis |
Цитата:
Цитата:
1 вариант на сколько мне известно. Код:
[Setup] Второй вариант Код:
[Icons] Других вариантов не вижу. |
Цитата:
Цитата:
|
Цитата:
|
Спасибо всем за все предыдущие ответы и советы!
Я перечитал литературу, но несмог найти что ищю. Скажите пожалста, какой скрипт нужно написать, который непозволит деинсталятору удалить определённую папку (файл) и после окончания деинсталяции чтоб появлялось сообщение: "определённые парки не тронуты.". |
Devils Night, вы бы уточнили, что это иконка ярлыка от деинсталлятора, а не самого файла Uninstall.exe.
alex_13_15, файлу Uninstall.exe задать свою иконку нельзя, разве что поменять ее самостоятельно и компилировать проект уже с этим деинсталлятором и не забыть прописать 'Uninstallable=false'. Не совсем красивый метод, но другого я не знаю. |
FX-DENIS, дайте именно тот скрипт, в котором возникла ваша ошибка, а лучше всего залить архив на файлообменник, для теста. В скрипте, который вы приводите выше, ошибок не вижу.
Цитата:
|
Попробую снова.
Установил игру. Запускаю деинстолятор. Ону даляет все файлы которые находятся в папке с игрой. Мне нужен скрипт. Который недаст удалить нужную мне папку. Пример: запусткаю деинстолятор, он удаляет все файлы кроме нужной мне папкии, выскакивает окно с надписью: такая-то папка небыла удалена. |
Как скрыть появление лого на странице установки
|
Вложений: 1
Цитата:
И прикреплю сам скрипт,раз так надо для теста |
Цитата:
Код:
[Setup] |
Цитата:
Цитата:
Проблема ваша здесь: Цитата:
Цитата:
|
я хочу прописать в мой скрипт ещё вот этот,чем можно заменить procedure InitializeWizard(); а то меня в скрипте уже есть (при компиляции ругается)
Код:
[_code] |
FX-DENIS, скрипт будет выглядеть так:
Цитата:
|
Serega, понятно спасибо
|
Как сделать так чтобы файл копировался с заменой без предупреждений, автоматом
|
alex_13_15, эээ флаг ignoreversion в секции Files, не?
|
у меня при установке выдалось предупреждение что такой файл уже есть и его нельзя заменить,
и три кнопки "повторить" "пропустить" "прервать" |
alex_13_15, значит у Вас какой-то файл поврежден...
|
всё нормально я немного в скрипте ошибся
|
мой инсталлер втихаря запускает быстротест, на странице лицензии (неважно через CurPagid= или NextButtonClick)
Смысл в том что когда или кликаешь на кнопку Далее или при открытии страницы лицензии инсталлер замерзает пока быстротест не высчитает Можно как-то "отсрочить" его запуск? Не перед отрисовкой старницы лицензии, а после но до нажатия кнопки Далее там же |
Цитата:
|
Цитата:
|
Цитата:
|
у меня в конце инсталяции вылетает такая ошибка
http://saveimg.ru/show-image.php?id=...4e8643d612344c |
Цитата:
|
Цитата:
|
Лександер, может быть что нибудь в скрипте не так
Код:
; by Evgeniy Bytaikis |
Цитата:
|
всё проблема решена, если кому то интересно из за чего выскочила эта табличка то объясню (если у кого то будет такая же проблема)
|
Serega, огромное спасибо, именно этот код мне и требовался. Последний вопрос: как привязать к каждой кнопке установку той или иной папки? Я так понял, в секции [Files] нужно пометить нужную директорию?
Ах да, можно еще каким-либо образом сделать так, чтобы при выборе одного типа установки в реестр добавлялись одни ключи, а при другом типе - другие ключи? |
Stable19, для проверок устанавливать, либо писать в реестр, используйте Check:... Внимательно посмотрите скрипт, я думаю суть понятна.
|
Serega, я думаю Stable19 поможет Component/task ;)
|
Цитата:
|
Цитата:
Код:
function InitializeSetup(): Boolean; |
Администрация плиз перезалейте файл "Inno Setup Form Designer " а то ссылка нерабочая и рабной сайт недоступен, а прога очень нужна, или скиньте плиз ссылку где можно скачать. оч нуно
|
Spell1999,
дизайнер - часть расширенной версии (в шапке), а тот дизайнер в купе с оф. сайтом давно загнулись |
тоесть всё ппц програмке? мож у каво есть скиньте плиз
|
Цитата:
Нафиг он тебе? Говорю же есть в расширенной версии, как её часть, которая лучше стандартной по функционалу или ты археолог? |
Вложений: 1
Цитата:
Код:
function InitializeSetup(): Boolean; begin MsgBox(BytesToReadable(GetFileSize('Test Drive Unlimited 2\bigfile_RU_1.big'), 1), mbInformation, MB_OK); end; |
FX-DENIS,
Код:
function InitializeSetup(): Boolean; |
R.i.m.s.k.y., спасибо,но так же сначала появляется окошко 0.0000000бт,затем дальше происходит установка игры ,и под прогресс шкалой,так же размер файла 512.000000000бт :not-me:
|
FX-DENIS, ну про нули я уже не подскажу...
|
Вложений: 1
R.i.m.s.k.y.,Serega,
Может вы посмотрите еще раз,что не так,протестируете у себя,почему такое происходит,а то мы тут 100 страниц испишем дойдя до сингулярности и вам тоже нервы мотаю.Легче понять что такое 299,792,458 m/s :durak: ,чем почему не показывается размер файлов правильно. Дополнительная информация Inno Setup 5.4.3(u) не русифицированная,еще установлены InnoIDE 1.0.0.0078 и ISToo; 5.3.0.1. ОS WINDOWS 7 x64 Вот снял скриншот в тотал коммандере размера файлов в игре и сам скрипт еще: |
Цитата:
Цитата:
Цитата:
Цитата:
|
Цитата:
по коду у тебя похоже путь неправильный, вот GetFileSize и вертает 0 или почему бы не воспользоваться стандартной FileSize Код:
... |
Вложений: 1
boss911, Я попробовал.
Хотя... я работаю в расширенной версии, может в стандартной это и не работает... |
Лександер
Я работаю исключительно в стандартной (официальной) версии. Как и сказано в справке, не работает. |
Цитата:
номрмальные герои ипользуют расширенную! |
Цитата:
Цитата:
где тут полный путь до файла? при такой раскладке он должен лежать в одном каталоге с инсталлятором. В любом случае извиняюсь за свою не внимательность, нашёл ошибку в формуле, исправил и добавил доп. проверку: Цитата:
Цитата:
Цитата:
|
Добрый день! Не могли бы мне помочь с распаковкой в зависимости от выбранных компонентов.Читал справку - ничего не получается. Пожалуйста опишите как нужно делать.
|
Цитата:
В shlwapi.dll, кстати, еще несколько похожих функций есть, легко описываемых и работающих в Inno, которые могут пригодиться: StrFormatKBSize - перевод байтов в удобочитаемую килобайтную форму, StrFromTimeInterval - перевод миллисекунд в ч/мин/сек. |
LinkOFF,
[Components] Name: A; Description: первый компонент; Flags: disablenouninstallwarning checkablealone fixed Name: B; Description: второй компонент Flags: dontinheritcheck disablenouninstallwarning [Files] DestName: "WizardForm.BitmapImage11.bmp"; Source: "art\ambient.bmp"; Flags: dontcopy solidbreak; Components: A B (это общие фалы для двух компонетов и распакуются, если выбран один компонент или оба и не распакуются если не выбран не один компонент) DestName: "WizardForm.BitmapImage3.bmp"; Source: "prolog\hl2_story.bmp"; Flags: dontcopy solidbreak; Components: A (только один компонент) DestName: "WizardForm.BitmapImage5.bmp"; Source: "art\Gunship_con2.bmp"; Flags: dontcopy solidbreak; Components: B (только один компонент) DestName: "WizardForm.BitmapImage4.bmp"; Source: "art\Cremator_poster.bmp"; Flags: dontcopy solidbreak (компонент не присвоен и как следствие будет устанавливаться всегда) |
Ну и намудохался я с этой игрой. В конце просто плюнул на неё и тупо запихал в архив.
После некоторых махинаций, в инсталяторе появилось ещё куча ошибок. Всем спасибо! |
Arsi000, ну в шапке же ссылка http://forum.oszone.net/post-1218002-103.html
|
Цитата:
|
Помогите, пожалуйста, разобраться.
Не могу заставить работать в MsgBox-е ExpandConstant('{app}') . Помогите подправить код: Код:
[Setup] |
vitl, на шаге InitializeSetup переменная {app} еще неизвестна
помоему я тебе уже и отвечал |
Цитата:
секция файлы такая |
Цитата:
c InitializeWizard константу {app} уже можно использовать? |
Цитата:
|
Помогите, пожалуйста! Дайте образец как осуществить продолжение установки игры со 2го и последующих образов.
|
Цитата:
Цитата:
Цитата:
|
Цитата:
El Sanchez, Serega в шапке есть скрпт ultimate black skin в котором реализована проверка железа через реестр. Что хорошо - работает у всех в не зависимости от звереубитости венды. Но недостаток - если в системе две видюхи этот скрипт покажет только название первой-активной. Как его модифицировать чтобы он доставал названия всех видюх установленных в системе? не используя WMI Заранее спасибо! |
Цитата:
А вот их Compil32Ex.exe я себе присмотрел. |
boss911, да, действительно обманул
не распаковывает прошу прощения |
Цитата:
|
vitl, читай в справке Installation order, эта переменная известна только после страницы выбора папки
Цитата:
после нее обычный компилятор уже не катит |
Цитата:
Так что ты был прав на все 100%. Цитата:
Только мне кажется смысла всего этого нет, т.к. активной всегда используют более мощную... |
Serega, прочитайте ,прошлую страницу
|
Цитата:
|
Цитата:
|
Для справки:
В общем заметил одну странность, при добавлении шрифта в инсталл, то один и тот же шрифт отображается по разному. На Windows7 шрифт отображается верно, но на Windows XP этот же шрифт в некоторых местах уматывает хрен знает куда, бывает даже смещение текста друг на друге. Получается нужно подбирать шрифт под Win7, WinXP и засовывать непосредственно в инсталятор, так что ли, или с этим уже вообще ничего нельзя сделать? |
R.i.m.s.k.y., WMI для для сбора информации использует и реестр в том числе. Видеокарты тусуются в следующем кусте,
Код:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E968-E325-11CE-BFC1-08002BE10318} Цитата:
|
El Sanchez,
спасибо, проверим, а куст \\Registry\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Video\GUID\0000\HardwareInformation.AdapterString нельзя использовать? boss911 El Sanchez я istool'ом пользуюсь только для импортирования файлов реестра |
R.i.m.s.k.y., у меня такого куста нет.
|
El Sanchez, но именно с этого куста берет инфо скрипт Ultimate test Black
GUID в смысле {abcde-....} у меня так Код:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Video\{2014FB57-2BF6-4963-8353-84CFD22EE202}\0000] |
подскажите как сделать что бы значок (воспроизвести) был не под картинкой WizardImageFile, а на ней???
|
мне может кто подсказать?
создаю комбобокс, при нажатии на Item должны быть отмечены те или иные чекбоксы и переключатели. Короче говоря как у типов установки. добавил Items.add('всё на английском') Items.add('всё на русском') как привязать процедуру типа такой к каждому айтему? procedure TYPE1 (Sender: TObject); /// тип первый begin hl2_main_CheckBox.Checked:= true; hl2_ru_en_RadioButton.Checked:= true; end; |
Как сделать деинсталятор в стиле инсталла.
|
Ivan_009, если ты про скин то вот http://forum.ru-board.com/topic.cgi?...&limit=1&m=8#1
|
Нет я иммею ввиду про внешний вид
|
|
Ivan_009,
прочитай сначала это http://forum.oszone.net/post-1873551-932.html потом это http://forum.oszone.net/post-1874234-942.html а внешний вид это не проблема. Вместо "выберете компонент" можно написать "Что удалить?" или переименовать кнопку далее "установить" в "удалить" и тд |
Цитата:
Цитата:
|
Можно ли как-нибудь изменить диалоговое окно выбора языка инсталлятора? (текст я знаю как менять). Сделать на другой форме... или что-либо?
|
sergey3695,
первое что приходит в голову - создать форму и на ней переключатели или (пример выше) комбобокс, после которого будет запускаться лежащий рядом инсталл с параметром командной строки типа setup.exe/LANG=English а в основном инсталле сделать выбор языка автоматическим ShowLanguageDialog=auto LanguageDetectionMethod=uilanguage |
хочу сделать свой курсор допустим он у меня есть, а есть ли какой небудь скрипт для в писания в свой????
|
Цитата:
|
by_gangster,
временный курсор. Его нужно ставить, а потом удалять, как со шрифитом. почему не воспользуешься стандартными курсорами? [Setup] AppName=Cursor AppVerName=Cursor DefaultDirName={pf}\Cursor [code] procedure InitializeWizard(); begin WizardForm.CancelButton.Cursor := crUpArrow; WizardForm.NextButton.Cursor := crUpArrow; WizardForm.BackButton.Cursor := crUpArrow; WizardForm.WelcomePage.Cursor := crHourGlass; WizardForm.DirBrowseButton.Cursor := crUpArrow; WizardForm.SelectDirPage.Cursor := crHand; WizardForm.Cursor := crHand; end; |
Johny777, спс, а в Files его надо указывать??
Johny777, показвается только стандарт, а мне надо что бы мой курсор показывался |
Цитата:
|
Serega короче хохма такая:если использовать ваш скрипт,где указанно Source: compiler:Examples\* я так понимаю это папка инно с примерами,то отображаеться всё и проценты и размер файликов.Как только я указываю Source: F:\Test Drive Unlimited 2\* то прощай проценты и размер файлов.Я тогда пошел другим путем,просто скопировал в папку C:\Program Files (x86)\Inno Setup 5\Examples файл bigfile_RU_1.big размером 3,05 гб и нажал нечего не меняя компиляцию.После компиляции во время установки и распаковки инсталятором файла bigfile_RU_1.big нет ни процентов ни размера,а потом после того как он распаковался инсталятором,происходит распаковка тех файлов мелких в C:\Program Files (x86)\Inno Setup 5\Examples и появляються(мелькают) их размеры и проценты появляются, сразу 100% ,при этом еще раз повторяю я не чего в вашем последнем скрипте не менял,просто скопировал в папку примеров этот огромный файл. Я так понял хоть убейся не может инно показать размер огромных файлов,а мелких пожалуйста и с процентами.Кто нибудь,может решить эту загадку?Уже 4 день мучаемся. :dont-know
|
FX-DENIS,
попробуй это для начала тут правда в байтах, но если отображается как надо, то думаю можно переделать проценты тоже есть |
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
|
Johny777, с этим скриптом я изначально пришел сюда))
Serega, Цитата:
Цитата:
В любом случае после стольких мучений тут,и перечитывания зря тысяч сообщений трех архивов форума спасибо вам Serega,а остальным,когда пишут,то прежде чем помогать Johny777 и другие,читайте с чем человек пришел к вам,или лень вернуться на несколько страниц назад,прежде чем советовать.Еще раз спасибо Serega вам,буду использовать скрипт последний предложенный вами,хоть такое отображение. |
Вложений: 1
Цитата:
Цитата:
Чтоб вам было понятней прикрепил к сообщению ваш скриншот, на котором сделал пометки. Цитата:
Если вы хотите, чтоб отображался размер именно в данный момент извлекаемого файла, вам придётся создать список всех файлов с размерами и при распаковке использовать уже BeforeInstall: Progress;, а в самой процедуре Progress в зависимости от имени файла писать его размер. Для того, чтоб изменялись проценты вместе с движением прогрессбара, показ процентов нужно писать через таймер. Цитата:
|
Как расширить эту область чтобы можно было сменить текст а то при смене текста половина букв невидно
|
Ivan_009,
настоятельно советую поставить расширенную версию. В ней есть графический дизайнер и все эти элементы двигаются и расширяются напрямую без ручной писанины коде! ссылка http://forum.oszone.net/thread-148707.html или http://innoultra.ru/?page_id=70 а расширить так. только в высоту, т.к. он шириной в InnerNotebook и пришлось бы расширять и его, что повлекло бы за собой смещение прогресбара и других элементов Цитата:
а для крупного сделать так _______________________________________________________________ кому нужно у меня много временных файлов и инсталл инициализируется долго сделал так форма отображается в течении загрузки сколько бы она на разных компах не длилась думаю можно ещё вынести из элементов строки типа ExtractTemporaryFile('WizardForm.BitmapImage9.bmp'); предварительно создав прогресбар прописывать после каждой строки что-то вроде ProgresBar.Position: =5; живой пример http://rghost.ru/37156533 |
Вложений: 1
Johny777,извиняюсь ,если перегнул палку,без обид. Serega, разжевал и в рот положил,всё понял теперь.Вопросов больше нет. :oszone:
Итоговый результат :type: |
Ivan_009, DirEdit и кнопку Обзор пониже опусти и будет место)
|
может, кто знает есть ли программа для внедрения в свой скрипт курсора???
|
Как сделать чтобы где иконка был тоже черный цвет вместо белого...
|
Ivan_009,
это же WizardSmallimage в фотошопе закрасить bmp картинку? а вообще вот цвет фона with WizardForm.WizardSmallBitmapImage do begin BackColor := clBlack; end; опять же одним кликом в расширенной версии пример дабы не флудить я больше на такие вопросы отвечать не буду. Когда перечитывал ветки 2 и 3, то через страницу были вопросы типа. "Как растянуть ту картинку" или "как сдвинуть лейбл?" ладно в обычной версии сделать это не так просто, тк не знаешь названия. Но здесь же всё перед глазами. |
Цитата:
|
Как добавить такие дорожки к чебоксу
|
Ivan_009,
Код:
[Setup] |
Цитата:
|
Сделал набросок скрипта, реализующего обновление установленной ранее программы.
Просьба проверить кошерность кода. )) Так же нужно вставить проверку дистрибутивной папки на наличие определенных файлов (см. коментарии в коде ниже). За ранее спасибо за помощь. Код:
[Setup] |
El Sanchez, туда я залазил хоть и скрипт маленький но нифига не понял, так же смотрел такой скрипт
Код:
Setup] |
by_gangster,
убирай пожалуйста код дополнительно в конструкцию [more"][code"] сдесь твой код[/code"][/more"] без кавычек пример из Цитата:
(только курсор) cursor.ani лежит в папке ....\Inno Setup 5\Examples |
как прикрутить скрипт для проверки системных требований если у меня черный инсталл почемуто не отображается нормально какой цвет надо сделать заранее спасибки............................................................................................ .......
|
Ivan_009,
давай смотреть вместе кусок мы видим настройку HWREQSound1.Color:= $C9C9C9; меняем HWREQSound1.Color:= clBlack; |
Для такого скина
|
Цитата:
какой цвет где именно? с чёрным со читается жёлтый. Я б все TMemo сделал бы жёлтым если стандартные цвета типа clBlue или clBlack не подходят, то берёшь фотошоп пипеткой образец цвета и смотришь пример получаем cc9900 для инно меняем местами первые две буквы(цифры) с последними получаем Color:= $0099cc |
Ну типа так чтобы а если не соответствует системным требованиям то выделялось красным цветом
|
Да вот если не трудно один вопрос как этот модуль одтелить тоесть если он не нужен то закоментить.... зараннее большое прибольшое спасибо.............
|
Ivan_009,
модуль это кусок скрипта он подключён у тебя в основном скрипте через препроцессор #include "HWREQ_Module.iss" просто закомментируй /// |
Ошибка
|
Ivan_009,
ну модуль отключил, а в нём было: procedure HWREQ_CreatePanelSimple(AFont: TFont); var ..... begin .... end; откуда инно знать, что такое HWREQ_CreatePanelSimple(nil) в основном скрипте? здесь не только модуль, но и строка в InitializeWizard(), относящаяся туда же. Ты её тоже закоментируй ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, касательно смены цвета там же смотри |
Цитата:
|
Johny777 спасибо разобрался что к чему
|
Такая ситуация. У меня есть 11 игр. При помощи AutoPlay Media Studio собрал все эти игры в антологию с автораном. Всё это весит 18 гигов. Как-то можно разбить это всё на 3 или 4 dvd5 диска с помощью Inno Setup?
|
rasim933,
[Setup] DiskSpanning=true DiskSliceSize=1566000000 SlicesPerDisk=4 |
Щяс проверю.
|
Что за ошибка вот скрипт
|
скрипт
|
Ivan_009,
ты бы не мог пожалуйста не писать сообщения одно за другим, а отредактировать предыдущее? это не чат! скрин с ошибкой можно залить на тот же rghost или скопировать текст из окна ошибки сочетанием клавиш ctrl + c ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, duplicate - дубликат identifier - структура данных function GetSystemMetrics.... уже где-то есть Цитата:
сотри лишнюю строку (возможно в модуле) |
А как обьеденить в одну функцию
|
Цитата:
|
Сделал. Получилось не как я хотел.
Собранную антологию через AutoPlay Media Studio, начал упаковывать через Inno Setup. В конце получилось так, что сначала распаковывалась вся антология, а затем из этой распакованной антологии надо было установливать игры. Можно как-то сделать так, чтоб сразу началась установка из антологии а не распоковка антологии? |
rasim933, сначала, безо всяких AutoPlay Media Studio, готовите инсталляцию посредством Inno Setup, разбитую на потребное количество дисков (не забыв оставить на диске место под будущий Autorun), и лишь затем уже создаёте Autorun посредством AutoPlay Media Studio, из которого и будет запускаться созданная инсталляция.
|
Можно пример текструированья прогресс бара
|
Ivan_009,
1. через ботву. В примерах есть (в директории установки Inno Ultra ...Inno Setup 5\Modules\South\botva2_example\progressbar_example.iss ) 2. в шапке пример замены цвета стандартного прогресбара 3. Используй скин, тк проще всего |
Цитата:
|
помогите пожалуйста текструировать прогресс бар через ботву к этому скрипту
|
Или я идиот или что-то пошло нетак.
Собрал я все игры через Inno Setup, получился инсталятор, который распаковывает все игры, котрые потом ещё устанавливать нужно. Как бЭ, это неустраивает меня. Есть ещё какие-то предложния:? |
Чего уж проще-то? Каждую игру отдельно пакуешь в Inno Setup-инсталлятор, а в авторане на AutoPlay Media Studio прописываешь на каком диске, какая игра лежит и при нажатии на кнопку, просишь этот диск вставить. По моему, это первое, что должно прийти в голову.
|
Нет смылсла какждую игры повторно упаковывать через Inno. Ведь каждая игры уже упакованы в инстолятор. Я все игры собрал вместе. И это всё занимает 18 гигов. Записывать отдельные игры на диски меня неустраивает. Через общий авторан прикольней получится.
Кстати, я незнаю как прописать в AMS, чтоб он просил нужный диск. Поэтому ищю помощи в Inno. |
Цитата:
Можно и на инно авторан сделать, это не сложно, в принципе. |
|
Цитата:
Ну, или почти все :) А чего нельзя, но очень хочется, то все равно можно. |
А можно кнкретней? Я несмогу это всё перечитать....
|
Там по минимуму - восемь кнопок и обработчик для каждой с примером выполнения команды. Команды вместо меседжбоксов свои вставляй и пользуйся. Ну и надписи на кнопках - надеюсь, понятно, где их поменять?
|
К сожалению, я с эти вообще незнаком. Сейчас я попробрую полазить в литературе.
Нашёл вроде вот это. Это пойдёт доя кнопки? |
Цитата:
|
Лучьше твой пример. Но, ведь я незнаю как именно по твоему примеру делать кнопки(((( Если можено, то пришли пожалста сюда коды кнопок.
|
rasim933,
для начала убери пожалуйста свой код на пол страницы в [more][code] твой код [/code][/more] и у меня вопрос дисков 4? а где авторан лежит? если на каждом, то это малость странно. Ладно ты пишешь на блюрей, но хочешь чтоб каждая игра имела свой инсталлер. если всё таки на всех дисках лежит одинаковый авторан, то проще всего вести поиск файла в {src}\game_1.exe и если он существует, то кнопка активна, а другие нет в противном случае нужно копировать авторан на комп (ведь если нужная игра не на диске и нужно вставить другой, то активная копия авторана закроется) и вести поиск вроде {drive:{src}} если у тебя setup.exe один, а bin фалы разбиты на диски, то при выборе компонента (игры) инно сам попросит вставить диск и причём здесь тогда авторан? короче я не рублю скажи как оно должно работать и возможно тогда будет легче тебе помочь |
Я хоч сделать 4 диска. Вот скрин всех файлов: . Сечас, все файлы по папкам распиханы. Пока дисков нет.
Цитата:
|
rasim933,
ты не ответил на мой вопос как оно должно работать пусть на твоём текущем авторане? куда и как запишешь? что должно запускать что и откуда? ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, мой тебе совет. На каждый двухслойный диск свой авторан, сколько бы игр на нём не лежало от 4 старых до 1 новой на диск |
1 *.exe файл авторана на первом диске, на остальных дисках, другие файлы. Соберу всё и запишу на 4 DVD5 диска. Сую первый диск, запускается авторан, жму на кнопу, требует диск 2. сую диск 2, жму на кнопку, установка начинается. авторан запускается с 1 диска.
|
Цитата:
Цитата:
Если один, то запрос дика это работа инно и авторан тут никаким боком вывод если инсталяторов много, то авторан с кучей кнопок это сложно (для меня), тк игры на разных дисках. Если установщик один, а в нём много игр, то опять же аторан нужен, но не такой, тк в конечном итоге выбор игры осуществляется в самом инсталлере а не через авторан |
|
rasim933,
ну теперь понятно завтра попробую сделать |
УРРААААААРАРА!!!! Спасибо)))))) Наконец-то я смог нормально обьяснит ь)))) Буду ждать)))
|
rasim933,
вот http://rghost.ru/37205735 ____________________________функционал: я не знаю где и как ты раскидаешь игры, но это не важно. на авторане 10 кнопок + кнопка "выход" каждая их 10 запускает свой инсталлер из внешней папки если какого-то инталлера нет, то кнопка отвечающая за его запуск не активна ____________________________внешне: 1. добавил скин 2. добавил фон 3. анимированный курсор на кнопках PS: всё что тебе надо настроить это строки для каждой игры. например: #define Button_1 "Spider-Man (PC)" #define Path_1 "{src}\1 Spider-Man - 1[PC]\setup.exe", где "Spider-Man (PC)" - название кнопки и "{src}\1 Spider-Man - 1[PC]\setup.exe" - это путь к инсталлеру той самой игры относительно расположения авторана |
Johny777, я тоже изначально понял так, что коллега rasim933 пересобрал каждую игру под InnoSetup и задача стоит в том, чтобы: а) сделать из кучи отдельных инсталляций InnoSetup одну единую (например, указав каждую игру отдельной задачей в инсталляции) и б) создать и прилепить к диску Autorun, который будет рисовать красивые картинки и запускать инсталляцию с заданными параметрами в зависимости от выбранных игр. Как оказалось, я ошибался в исходных данных.
|
Ок. ЩЯс проверю.
Johny777, Гениально!! Боже! Теперь прога требует ISSP. Ааааа. Теперь искать надо. |
Цитата:
|
Лександер,
спасибо! возьму твой пример мне как раз на одной из страниц много кнопок надо, а код у тебя короткий ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, Теперь у меня вопрос допустим у меня свой кастомный(!) чекбокс для установки директикса и появляется он если снаружи есть директ икс под ним идёт такой же, но только для визуала ниже идут чекбоксы с самоизвлекающимися рахивами, собержащими в себе обнновления и появление их опять же зависит от двух факторов: 1 отмечен нужный компонент, 2 есть ли снаружи архив. все эти чекбоксы очень нестабильны в своём появлении и в конечном итоге если какого то нет, то на форме они будут создаваться через однин или через 2 вопрос как сделать добавление (какие добавятся в зависимости от...) ровно в столбик с расстоянием скажем в 10 пикселем между друг другом по вертикали вот как я сделал пока что только с одним чекбоксом для этой формы есть кнопка |
Johny777, Создавай объект NewCheckListBox. пример создания и добавления элементов можно посмотреть в Example_NewCheckListBox.iss. при его заполнении нужно сперва удалить все элементы : CheckListBox.Items.Free;
Только хоть массивом в цикле, хоть чеклистбоксом, все равно нужно проверку довольно сложную делать. Еще вариант - создать сразу все чекбоксы, при сокрытии все остальные чекбоксы сдвигать вверх на заданный шаг. Цитата:
|
Цитата:
логики не хватает или прописывать 30-40 комбинаций для (у меня 6-7 задач максимум) дыры будут, а от всяких ListBox ов у себя в скрипте отказался, тк с отдельными элементами работать легче да и при скине чекбоксы в ListBox-е виндовсовские а не со скина, ладно думаю как на авторане можно сделать просто неактивными |
Какая фукция в ISDone вызывает откат установки подскажите пожалуйста
|
Как мне сменить надпись на установить
|
Ivan_009,
идёшь в директорию ...\Inno Setup 5\Languages в ней открываешь блокнотом Russian.isl, а там весь диалог инсталла, расписанный по разделам ; *** "Select Additional Tasks" wizard page SelectTasksLabel2=Выберите дополнительные задачи, которые должны выполниться при установке [name], после этого нажмите «Далее»: .... из справки мы узнаём о секции [Messages] (Секция [Messages] используется для определения текста сообщений в инсталляторе и деинсталляторе.) и получаем: ________________ вот на всякий случай русская справка http://rghost.ru/37221111 |
Вложений: 1
Уважаемые форумчане! Помогите начинающему разобраться с проблемой. Мне было нужно создать простой инсталятор для игры (700Мб) с использованием модуля распаковки архивов FreeArc. За основу был взят шаблон FreeArc_Example (секция [code] была перенесена без изменений). Вот что у меня получилось: см. вложение.
Скрипт получился вроде рабочий: инсталлятор создавался, компиляция проходила без сообщений о ошибках. Но в готовом инсталяторе обнаружилась проблема - распаковка архива (datapack.arc) происходит только когда инсталятор находится в той-же папке где был собран (т.е. в папке с файлами игры, скриптом и unarc.dll. При переносе инсталятора в другое место и его запуске оттуда - распаковка архива не происходит. Подскажите пожалуйста - где и в чем я ошибся. PS: Пользуюсь IS v5.2.3.0 (ansi) c ISPP. |
Цитата:
вот смотри Код:
[code] {src} это константа пути и означает "снаружи" если написать {src}\data\*.arc , то ахивы лежат в папке data, которая лежит рядом с setup.exe в этих примерах ты таскаешь архив вместе с инсталлятором! |
Цитата:
|
как можно сделать в isSlideShow v1.02 в первом примере где слайд шоу на весь экран показ слайдов не по процентам а по времени. Мне нужно для ISDone.. :help:
|
Помните мою антологию? Мне почти удалось всё сделать)))) ТОлько опять, не все игры помещяются на 4 дисках. Кто-то сможет мне помочь сделать репак игры которая весить 1,75 ГБ? Мне только нужно её перепаковать и при этом разделить на файлы весом 100 мб каждый. Кто-то поможет это всё проделать или предложите ещё какие-нибудь варианты?
|
rasim933, возможно UPX по-может, но причины при запуске инсталлятора бывают разные...
Кстати, можно убрать галочку "Использовать загрузчик"; а сами форматы BIN'ы - само надо разбираться. |
Цитата:
Код:
[Setup] если тебе это нужно делать не с помощью Inno Setup, то ты ошибся темой... |
Не, насчёт разбивания, этот код непоможет, как мне кажется. Я пробовал уже так, я запоковал установщик игры, протом его приходилось распаковывать сам установщик, а затем устнавливать игру. Я неправильно сделал?
Или мне прийдётся сначала установить игру, потом вес файлы упаковывать заново? |
Цитата:
Не пойму Тебе не удаётся ужать до этого размера? Цитата:
вот настройка на максимальное сжатие сожми сначала со словарём 262144, а потом с 131072 и посмотри. Если не получится, то используй фриарк SolidCompression не используй, если есть выбор компонентов |
Всем доброго времени суток.
У меня вопрос. Мне нужно вызвать ф-ю из DLL после установки приложения, но перед появлением окна Finish. Причем вызов должен происходить только во время установки, а не деинстала приложения. Сам процесс вызова ф-ии я знаю, а вот как поймать нужный момент? |
al70, использовать CurStep = ssPostInstall или CurStep = ssDone
Код:
procedure CurStepChanged(CurStep: TSetupStep); |
Ivan_009, ну типа опа, нюхай сюдой
Риальне поцанчеги никада, слыш бро, никагда не ставят на программерских и админских тачилах по-умолчанию русскую раскладку потому кактаместь такое западло как буковка цэ, с то есть. це буква выглядит одинаково на обоих мовах, но компилятор он же сцукотупой как мой трындец и не понимает етого и вопит как касперский над стухнетом. А истчо бывает такое что на пацанских форумах, к примеру как этот да, когда братишки друг другу хелпают, тег (во слово-заумь Э!) [code] подменяют на [*code] или [_code] чтобы пихло форума схарчило подгон как надо, форум он же брат по разуму компилятора не жди от что он щаз дипблю порвет как [П] на выборах Так что сотри эту строчку, копирни [code], вставь и будет тебе хэппи, ну до следующей ошибки PS какой квесчен такой и ансвер ============== как грится вместо тысячи слов один скриншот ошибки |
Ivan_009,
да я тоже твой вопрос не очень понял скрин/текст ошибки покажи |
Ivan_009
1. как ни странно - понять, самому, исходя из факта что Inno при компиляции идет сверху вниз 2. писать по русски |
Предположим, есть файл setup.exe, он весит 1,75 гб. Я его через инно перезжимаю. В конце получается setup1.exe + setup1 (1).bin + setup1 (2).bin +setup1 (3).bin +.... При желании установить игру, мне надо из setup1.exe распаковать setup.exe, а потом из этого setup.exe установить игру. Меня это неустраивает. Понимаете что именно я хочу сделать?
|
rasim933, пока еще не понимаем, каким способом сжать установщик > 30 %. Сейчас подумаю...
|
Ivan_009,Что случилось?
Ваня! Родимый! ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, Цитата:
в одном скрипте при компиляции и отладке он проблемные строки посвечивает, а в модуле нет. Модуль хорош, когда у тебя много сообщений и они готовы. Или секция файлов полностью готова. Убрал из скрипта и перематывать меньше! .,...................................................... rasim933, инсталл в инсталле? |
В этом то и прикол. Инстал в инстале неустраивает меня. А другого способоба я незнаю. Вот у вас и спрашиваю..
МНе не обязательно перезжать игру, мне необходимо её разбить на много частей. Если я начинаю разбивать игру, то получается инсталл в инсталле. |
ну так перепакуй
или ты знаешь как разбить готовый инсталл? Я нет И скажи зачем тебе его разбивать? |
Цитата:
Цитата:
Цитата:
Скрин:. Предоставить вам скрины с размерами игр? P.S. - Я извиняюсь за причинённые неприятности, но без вашей помощи я несправлюсь сам. |
Цитата:
если игра запакована в инно, то используй инно анпакер (есть в комплекте Inno Ultra) и нет, то ключи доставай сам. Цитата:
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\ и кстати. Есть такая штука. Называется overburn, которая доступна например в ImageBurn позволяет записать больше чем дозволено. |
ОК. Попробую.
|
Подскажите пожалуйста
на выкатывающейся панели разместил InfoBeforeMemo в нём находятся параметры консоли. Как активировать копирование. Т.е. выделяешь нужную команду, правой кнопкой - "копировать" и потом вставить в эдит вот наглядный пример пока что работает только через связку ctrl+c и shift+insert. если это слишком сложно реализовать, то не надо, т.к. это не самое важное :good: |
Цитата:
Код:
[code] |
Спасибо! Теперь как в консоли самой игры и очень удобно!
Цитата:
а про всплывающее меню даже не подумал, тк там при нажатии на кнопку (это теперь я тоже могу (спасибо ещё раз! :bow: )). Кстати. Деинсталятор с выбором компонентов ещё доработал и полностью перенёс в код может кому-то пригодится! вот пример. |
Цитата:
Первый с помощью Regshot, надеюсь тут понятно без слов. Второй немного по извращённей, с помощью Revo Uninstaller. |
Devils Night, можно также " извращённый " токо через Unistall Tools правый клик по программе показать запись в реестре
|
valyok666, Devils Night, rasim933 это именно что извращенный способ тк прога не всегда сносит при деинсталляции все ключи реестра, а вот при инсталляции пишет точно все, так что регшот: снимок1 - поставили - снимок2 - сравнили - через истул импортировали - пути поправили и натюрлих
|
Цитата:
Цитата:
А так то несомненно Regshot, но так или иначе и тут придётся допиливать, удалять не нужное, т.к он много лишнего хлама за собой тащит. |
Цитата:
|
Сложный вопрс!
|
Собсно я хочу добавить поддержку нескольких языков инсталлятора, но вот как это реализовать в секции Code, мне неизвестно =(
Может какой-то добрый человек помочь с этой проблемой? Вот четыре кода, которые нуждаются в добавлении поддержки многоязычности: Проверка на кирилицу в пути установки Скрипт для вывода данных о винтах. Описание компонентов И такой |
Raf-9600,
может так выплняется то или иное, если ActiveLanguage='Russian' [Languages] Name: Russian; MessagesFile: compiler:Languages\Russian.isl; Name: English; MessagesFile: compiler:Languages\English.isl; и вот первый пример на запрет кириллицы в пути |
Raf-9600,
языки делаются воттаг, я не буду парить моск вакуумическими примерами, дерну из рабочего скрипта Код:
# define AppName "SmoothVideo Project" |
:) использую отображение процентов в установке
вот так проблема в том, что лейбл обновляется после копирования файла и если он большой, то рывками например с 50% до 60% Есть вроде возможность считывать положение прогресбара может у кого есть пример (там кажется задействована InnoCallBack.dll) для отображения таких процентов? оно будет точнее |
Raf-9600, В каком смысле? Если менять язык инсталлятора на ходу, то это страшное дело - абсолютно все надписи нужно перерисовывать заново - это долгий процесс, и на слабых компах вызовет дикие тормоза.
по предложенным тобой примерам: Проверка кириллицы в пути - слегка правленый вариант товарища VoLT: Скрипт для вывода данных о винтах - слегка правленный вариант от YURSHAT(требует get_hw_caps.dll): На описания тоже гдето есть скрипт более оптимальный и в плане производительности и в плане косячности работы, за авторством Shegorat, но лень искать (эти два под рукой просто были). |
Цитата:
(у себя использую тот, что страницей назад и если оно того стоит поменяю на твой) |
Johny777, Все у тебя правильно, и опора идет по позиции прогрессбара, как раз. просто у тебя обновление по окончании копирования предидущего файла. делай эту процедуру в таймере, чтоб обновлялась позиция с минимальными интервалами.
Цитата:
|
Лександер,
извиняюсь за неточный оборот речи под словом "твой" имелось в виду не авторство, а твой пример (или готовый "пример из твоего сообщения"). Коточе в таком смысле Да и бред говорить что он твой(авторство) после того как ты сам сказал, что "правленый вариант товарища VoLT" Цитата:
Скажу честно. У меня 90% функций скрипта - чужие примеры и я благодарен их авторам (хотя многих даже не знаю, тк взял из коллекции скриптов). А то что твои скрипты кое кто воровал я в курсе. Тк перечитывал предыдущие ветки в поисках знаний и примеров. И можешь не поверить, но у меня нет ни одного того скрипта с сам знаешь какого сайта, тк они там "грязные" |
Цитата:
...мы все учились понемногу чему-нибудь и как-нибудь... |
Здравствуйте у меня небольшой вопрос по копированию файла из секции [Components]. Как сделать так чтобы если выбирая компоненты a и b, компонент b копируется одну папку, а если b и с, то компонент b копируется в другую папку. И все три файла разные.
|
Johny777, R.i.m.s.k.y., благодарю, ваши примеры мне пригодились.
Лександер, опубликованный вами скрипт проверяющий "некорректные" символы в пути установки, выглядит более универсальным, но по непонятным мне причинам, он жалуется на некорректные символы, даже если в пути установки только буквы латиницы. А скрипт для вывода сведений о винчестерах мне больше по душе тот, к которому я привык, к тому же для него не нужны дополнительные библиотеки. Собсно с используемым мной скриптом для вывода сведений о винчестерах возникла трудность. Я бы хотел добавить в него мультиязычность по средствам CustomMessages, но я не ориентируюсь в "правописании". Может ли кто-нибудь показать пример решения этой проблемы? На всякий случай копирую скрипт о котором речь: |
|
Raf-9600,
пример использования самописных констант в коде [CustomMessages] Russian.upd_hl2=обновить Half-Life 2 English.upd_hl2=Update Half-Life2 [Languages] Name: Russian; MessagesFile: compiler:Languages\Russian.isl; Name: English; MessagesFile: compiler:Languages\English.isl; [ code] Caption := ExpandConstant('{cm:upd_hl2}'); +++++++++++++++++++++++++++++++++++++++ другой пример для запрета кириллицы в пути Russian.rus_symbol_1=В пути установки присутствуют русские буквы, что недопустимо English.rus_symbol_1=The installation path contains Russian letters, which is unacceptable Russian.rus_symbol_2=Пожалуйста, повторите ввод. English.rus_symbol_2=Please try again. [ code] MsgBox(ExpandConstant('{cm:rus_symbol_1}' #13#13 '{cm:rus_symbol_2}'), mbError, mb_Ok); |
Цитата:
Johny777, благодарю, вроде разобрался. |
Цитата:
Johny777, Raf-9600, блеать, кто вас научил пустую строчку делать #13#13??!!11 #13 всего лишь опускает курсор по вертикали на строчку ниже но позиция по горизонтали остается таже самая!!11 в ДОСнах!!11 т.е. пример+#13+строка№2 канонически даст на выходе Код:
пример т.е. правильно пример+#13#10+строка№2 даст на выходе Код:
пример Вообще #13#10 забейте как константу один раз и не парьтесь!!! Не, #13#13 конечно работает пока виндовый-оконный-рендер понимает, но ведь он может и вернуться к исходному пониманию! |
Цитата:
у меня только в проверке кириллицы и насчёт Цитата:
я протупил вот как у меня например в одном из rtf созданном в дизайнере> везде через + пишется а раньше не замечал что правда удобно через константу использовать это цвет const ColorA = $48c1ca; |
Цитата:
у меня есть подозрение что толстые бинарные/хексовые записи инно не заносит в реестр полностью а обрубает концовку пример такой записи Код:
"FilterData"=hex:02,00,00,00,01,00,80,ff,03,00,00,00,00,00,00,00,30,70,69,33,\ |
Как растянуть выделенную область через редактор форм в расширенной версии Inno Setup подскажите пожалуйста :drug:
|
|
Ivan_009, сделаю короткую запись от Johny777: где квадратики (вверх-вниз-вправо-влево-диагональ), можешь изменить как-угодно.
|
Лександер,
использую твою выкатывающуюся панель с предыдущей ветки если эта строка задействована, то очень некрасиво мелькает страница //ComponentsPage.Surface.Repaint; вроде есть решение в виде WizardForm.DoubleBuffered := True, которая доступна только в Unicode. Но у меня ANSI может есть другое решение? |
Есть ,поищи, я выкладывал этот-же пример но на таймере - там более плавно и вроде без репайнта нормально отрисовывается.
|
использую флаг onlyifdoesntexist, тк общие файлы много весят и иногда просто нужно сменить озвучку, но заметил, что если файл не тот, но имеет то же название, то он пропускается.
хотел сделать две радиокнопки "дополнять" и "перезаписывать" (или "простая установка" и "ремонт") так не работает Flags: {code:flags} может дублировать строки? например Source: steamapps\common half-life 2\*; DestDir: {app}; Flags: другие флаги onlyifdoesntexist; AfterInstall: ExtLog(); BeforeInstall: AddToMemo; Check: make_hl2 and addon Source: steamapps\common half-life 2\*; DestDir: {app}; Flags: другие флаги ; AfterInstall: ExtLog(); BeforeInstall: AddToMemo; Check: make_hl2 and overwrite где addon это function addon: Boolean; begin Result:=addonRadiobutton.Checked; end; ну и если .Checked, то эта строка те же махинации для другой но не знаю. Как-то странно получается ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, не нашёл решение вот кому пригодится (проверено) размер больше не становится, тк MergeDuplicateFiles по умолчанию true, но идёт двойная распаковка, если строка относится ещё к чему-то. Например к чекбоксу :( |
Johny777, да можно делать две такие строчки
если файл пропускается - смотри на флаг ignoreversion |
Цитата:
Код:
SetWindowLong(WizardForm.Handle, GWL_EXSTYLE, GetWindowLong(WizardForm.Handle, GWL_EXSTYLE) or WS_EX_COMPOSITED); |
А что это за финтиклюшка такая {ini:{src}\setup.ini,Setup,AppName}? Файлы приложил!
Какие ещё секции могут работать? Ну может Code там, что можно ещё в Setup добавить? setup.rar |
Цитата:
а чему равны? GWL_EXSTYLE = ?; WS_EX_COMPOSITED = ?; ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,, Цитата:
вот например El Sanchez выкладывал много страниц назад не даёт пользователю запустить тот же инсталл несколько раз пока он работает очень полезная штука! или |
Цитата:
Я имею ввиду не в *.iss добавить что-то в секцию [Setup] например DefaultDirName={pf}\My Program, а именно что ещё можно добавить в *.iss для Setup.ini в секцию [Setup]? Например в iss хотел добавить DefaultDirName={pf}\My Program для ini, т.е DefaultDirName={ini:{src}\setup.ini,Setup,DefaultDirName}, а в ini добавил DefaultDirName={pf}\My Program, так в итоге нифига не получилось, при компиляции выдало ошибку. |
помогите пожалуйста прикрутить к этому скрипту отображение времяни и процентов установки
скрипт и к нему Components.iss |
Цитата:
Да и в следующий раз облочай всю свою портянку в CODE и под спойлер PHP код:
, и какие нибудь файлы к скрипту прикрути, здесь люди не волшебники из страны ОЗ. Script.7z |
не получается не отображаются время и проценты установки
|
Ктонить может прикрутить возможность вертикальной прокрутки к коду на отображение комментариев к компонентам? В смысле чтоб если комментарий слишком велик, то справа него появлялся скроллбар.
Сам код: |
wertulll,
так сойдёт? http://rghost.ru/private/37400744/c2...fcdec6682fe96a *(за скрипт который я добавил спасибо Serega скажи) _______________________ блин как вы вкладываете файл в сообщение? "вложения" ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, Raf-9600, ты в курсе? есть всплывающие подсказки в расширенной версии. Наводишь на элемент и появляется подсказка вот сделал если описание большое, то появляется скроллбар (здесь вертикальный) под расширенную версию без использования библиотеки |
Johny777, не работает не отображается ни проценты не время
|
Вложений: 1
Цитата:
|
wertulll,
я проверил перед тем как выложить к тому же везде где куски скрипта вставил приписал, что они вставлены ты можешь легко всё убрать Цитата:
/// к каждой строке фалов, относящейся к отображению процентов и размера нужно приписать ;AfterInstall: Progress; /// Пример Source: Files\screenshots\*;DestDir: {app};AfterInstall: Progress; |
Цитата:
Но в версии от Shegorat меня смущало отсутствие скроллбара, а в твоей версии не нравиться, что в ней можно выделить текст. Это можно как-то изменить? |
Johny777, блин точно пропустил :) Спасиб большой всё работает :up
|
Цитата:
не то вот к каждому элементу приписываешь Код:
Hint := 'я всплывающая подсказка'; Цитата:
http://forum.oszone.net/attachment.p...1&d=1333538391 |
Цитата:
Цитата:
|
Цитата:
да и какая разница. Пусть выделяется! Цитата:
скомпилируй и наведи курсор на чекбокс а делается легко http://forum.oszone.net/attachment.p...1&d=1333540276 раньше тоже как ты скрипт использовал для описания в отдельном окошке, но потом отказался от ComponentList-a, тк криво отрисовываются чекбоксы (заместо тех, что в скине виндовсовские). Двигать их нельзя и прочее в месте с компонентами улетело и описание, тк ему на смену пришли всплывающие подсказки |
Цитата:
Цитата:
Тогда у меня возникает вопрос: У меня есть некоторые правила для автоматического выбора компонентов и блокировки их, а можно ли сделать так, чтобы когда одно из таких правил срабатывало, и пользователь наводил курсор на заблокированный компонент, то высвечивалась бы всплывашка, объясняющая, почему компонент заблокирован? Интуиция подсказывает мне что это фантастика... Но вдруг я ошибаюсь? :) Собсно сами правила блокировки: |
Цитата:
|
Raf-9600,
сложно для меня не знаю как добавить подсказку, если компонент "выключен" (ItemEnabled[86]:=False) и попробовав скажу, что для заблокированного элемента подсказка не всплывает вот так могу сделать (других идей нет) скомпилируй посмотри Цитата:
можно пример? |
Johny777, Это не подойдет. Но все равно спасибо за помощь :)
|
Цитата:
Код:
const |
|
Devils Night, в секцию Uninstall реестра во время установки доступа нет, туда можно сунуться во время InitializeSetup или после [Run]
|
Цитата:
Ребят, подскажите такую вещь, как по средствам INNO По VID & PID сделать так чтобы определялось устройство и высвечивалось в инсталяторе? |
Как у новой bass.dll v2.4.8 создать кнопку вкл выкл музыки... :help:
|
Devils Night, если мне нужны названия и пиды/виды - я из реестра дергаю, в шапке есть ultimate Black Skin, он выдергивает названия, ис тех же ключей реестра можно дернуть и пиды
в общем за основу возьми из шапки скрипт "проверку системных требований" вот так я дергаю для видюшки пид/вид, на выходе список видюшек с пидами/видами, каждая видюшка на новой строчке Код:
function GetAllVideoCard():String; // HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E968-E325-11CE-BFC1-08002BE10318} |
подскажите пожалуйста
как убрать кнопку системного меню в середине? (правый фрвгмент скрина из готового инсталла на основе Inno, а не фотошоп) за эти кнопки отвечает WizardForm.BorderIcons := [biSystemMenu]; вот так не убирается Procedure InitializeWizard(); begin WizardForm.BorderIcons :=WizardForm.BorderIcons - [biMaximize]; end; :( |
Цитата:
Цитата:
А вот когда устройство есть но не установлены драйвера, оно определяется в Class\{4D36E968-E325-11CE-BFC1-08002BE10318} или HARDWARE? Цитата:
А как сделать чтоб оно в инсаляторе где нибудь внизу выдало например Видеоадаптер: Такой то, такой то. Естественно без оформления и рамок. |
В Inno Setup от Restools есть замечательная возможность сворачивать компоненты (ComponentsListTVStyle=true), а возможно ли сделать так, чтобы при выборе какого-то компонента, сворачивалась определённое древо компонентов?
Допустим у меня есть: Код:
[Components] |
Raf-9600, не оно ?
|
Как сделать выборочный компонент, чтобы при галочке: после установки прописывался реестр (reg-файл), при не галочке: после установки не прописывался реестр (reg-файл)?
|
Цитата:
|
Raf-9600,
нафига? а если у него дочерние как у тебя в примере? смотри я выбираю основной - игру. И тут дерево дочерних сворачивается. Т.е. рабиокнопки с выбором озвучек, чекбоксы к ним ещё дочерние Тебе разве такое нужно? |
Цитата:
Цитата:
alert30, вот ты сейчас одним предложением описал [Components] и как он работает, его и используй |
|
alert30,
как и со всем остальным [Components] Name: B; Description: описание к B; [Registry] Root: HKLM; Subkey: "SOFTWARE\Bethesda Softworks"; ValueType: String; Flags: uninsdeletevalue uninsdeletekeyifempty; Componets: B |
Johny777, это точно работает, просто я хочу, которую выше написал:
а) галочку поставишь в компоненте - установка + пропись реестр б) не поставишь галочку в компоненте - установка ? Извените, все заработало. |
alert30,
файлы не помеченые компонентом ставятся всегда а галка компонента пусть будет только для реестра (как у меня в примере) Цитата:
и опять же можно менять его название, описывающее то или иное действие будучи отмеченным или неотмеченным |
Цитата:
Цитата:
|
Raf-9600, К дереву компонентов которое хочешь скрыть добавляешь ; Flags: collapsed.
Код:
[Components] |
Raf-9600, Devils Night,
вот из примера Example_NewCheckListBox.iss 1: CheckListBox.TreeViewStyle := CheckListBox2.Checked[1]; это демо те при нажатии на чекбокс появится возможность складывать дерево в купе с флагом collapsed (кажется...) |
Цитата:
Допустим чтобы древо относящееся к Game1 автоматически сворачивалось только если выбран Game2. А Game2 автоматически сворачивался только если выбран Game1. Код:
[Components] Цитата:
|
Raf-9600,
ты знаешь кажется настройка "TreeView" относится ко всему ListBox-у со всеми вытекающими последствиями поэтому одна из 2-х игр будет только на одном листбоксе, созданном в коде. От стандартного выбора типа установки придётся отказаться. Да думается мне и не нужен он для двух игр, из которых за раз установить можно только одну! потом попробую что-то придумать ), но совсем не уверен, что в итоге получится то, что нужно |
Johny777, благодарю за желание помочь мне, но если это сложно, то я бы не хотел никого напрягать своей просьбой.
|
Цитата:
по твоему вопросу ерунда получилась т.к. не знаю как сворачивать дерево может кто другой додумает |
Цитата:
Ну да ладно, у меня другой вопрос: возможно ли менять описание компонентов в зависимости от того, какие выбраны? Код на описание компонентов использую этот http://forum.oszone.net/post-1893249-1390.html Пробовал писать примерно так: Код:
if IsComponentSelected('Game1') = True then |
Raf-9600,
не совсем понимаю в примере идёт описание сверху вниз в соответствии с элементами окошка компонентов (они тоже сверху вниз добавляются как в секции записано). |
Johny777, допустим есть такие компоненты:
Код:
[Components] |
Raf-9600, ща за 15-20 минут накидаю примерчик
Код:
[Components] щаз еще Лександр скажет "надо использовать case" Да, н-н-надо, но я не знаю как перехватить номер нажатого компонента |
|
Johny777, а что такое CheckListBoх? с формами я никак
я серъезно не знаю |
R.i.m.s.k.y.,
в моём предыдущем сообщении (на предыдущей странице) 2 таких |
Инсталлятор выделяет эту строчку и говорит "Type mismatch"
Код:
ItemCaption[item] := items + 'Game1'; На всякий случай уточняю: я имел ввиду не чтобы Description менялось, а чтобы комментарий к компоненту менялся. Ну, такой комментарий, который создаётся этим кодом http://forum.oszone.net/post-1893249-1390.html |
Johny777, не такое не знаю
Raf-9600, поправил выше сообщение, с комментариями тоже ыкстры |
Цитата:
|
Может пожалуйста кто-нибудь добавить сюда
это Код:
//прокручиваем вниз я не могу :( но очень нужно потому что |
|
Цитата:
Код:
const |
El Sanchez,
спасибо тебе огромное мне так сильно этого не хватало! результат http://sendfile.su/566305 :) sergey3695, честно говоря исдан посмотрел справку и пример глянул и всё опыта нет если там через библиотеку идёт удаление , то ничем помочь не могу |
Ктонить может убрать возможность кликнуть ПКМ по тексту комментариев компонентов, из этого кода?
|
Как прописать в секции [Run] установку Обновить DirectX (требуется интернет соединение) пробовал стандартный ключ silent почемуто ошибка... :help:
|
Цитата:
а если пользователь не хочет ставить панель Bing? а ели у пользователя инет не безлимитный со всеми вытекающими последствиями? Лучше не в тихом режиме! Извини если вопрос не понял Цитата:
использую расширенную версию 5.4.2 (ANSI) |
Как прописать эапуск веб установщика DirectX :lol:
|
Ну Ваня
вот два варианта тебе второй подробнее расписать? [Run] Filename: {src}\dxwebsetup.exe; StatusMsg: установка директа; Flags: skipifdoesntexist waituntilterminated; или [code] var res: integer; если чекбокс отмечен, то begin Exec(ExpandConstant('{src}\dxwebsetup.exe'), '', ExpandConstant('{src}'), SW_SHOW, ewWaitUntilTerminated, Res); WizardForm.StatusLabel.Caption := 'установка директа'; end; |
Цитата:
|
Цитата:
|
Подскажите ктонить, можно ли сделать так, чтобы в приведённом ниже коде, при клике на какой-либо компонент, инсталлятор не зависал? При том нужно чтобы весь функционал остался.
|
Raf-9600,
кажется виснет из-за неполной или неправильной логики вот записал пока в удобочитаемой форме (тормоза на месте) нашёл конфликт! дочерний элемент радиокнопки не может быть фиксирован речь идёт о этом компоненте Name: "Diablo\UPD"; Description: Активировать UPD; Flags: disablenouninstallwarning; Types: full и куске процедуры If IsComponentSelected('Diablo\patch\109') then begin WizardForm.ComponentsList.ItemEnabled[14]:=True //Diablo\UPD OldEvent_ComponentsListClickCheck(Sender); end else begin WizardForm.ComponentsList.ItemEnabled[14]:=False; OldEvent_ComponentsListClickCheck(Sender); end; те если выбрать патч, то только активировать достаточно просто чтобы он был отмечен. а если пользователь снимет галку, то Diablo\patch\109 не отмечен. очень сложно с этими номерами понять логику. Пересмотри а лучше начни писать заново, проверяя после каждого действия всё ли работает |
Цитата:
Код:
begin |
Raf-9600,
Item Enabled : = False объект включен НЕТ, те заблокирован у тебя все дочернин объекты относятся к двум переключателям (двум играм) а дочерний объект переключателя не может быть заблокированнным пример в 1 игре один элемент (та же активация например) заблокирован я переключаюсь на игру 2, но все дочернин элементы первой должны лишиться своих флажков, а с одним не получается. Он заблокирован. попробуй так скомпилировать а теперь запусти и вылетит ошибка подтверждающая всё вышесказанное просто нужно при выборе A, выбиралось и B и если потом убрать галку с B, от галка(точка) уберётся и с A, НО не блокируй! (смысл? если они и так друг от друга зависят) а у тебя в коде через раз блокировка и потому всё виснет, и мой тебе совет сделай окошко выбора компонентов больше по вертикали. Еслим внизу поставить галку, а вверху (где не видно) галка снимется (которая важнее той что снизу, но пользватель не видит, что её уже нет), то получится нехорошо |
Цитата:
А вот если, к примеру, сделать все то же самое, но выбрать английскую локализацию, то инсталлятор зависнет... Либо мистика, либо я чего-то не догоняю :) Цитата:
|
Raf-9600,
выпей водяры и начни сначала но без строк WizardForm.ComponentsList.ItemEnabled[31]:=False или True а заместо них wizardform.ComponentsList.Checked[1]:=True; или False никакой мистики это просто вынос мозга |
Цитата:
|
Цитата:
Код:
если выбран компонен "немецкая локализация" то те установить патч с другой локализацией кроме немецкой не получится. такое же услвии для патча только по отношению к немецкой озвучке Но если ты его ещё и заблокируешь, то всё зависнет в блокировке просто нет смысла! |
Цитата:
Цитата:
Хоть ты и прав, но я ещё поколдую над ItemEnabled. |
Цитата:
и ты используешь флаг collapsed не забудь тогда приписать в InitializeWizard; строку WizardForm.ComponentsList.TreeViewStyle := True; |
Цитата:
|
Я добился своего. Везде где был прописан ItemEnabled там он и остался. К ним я лишь добавил правила снятия галочек с Hellfire\Hide\Barbariantest и Diablo\UPD
|
Ктонить может перенести задачу из батника в секцию [Run] инсталлятора? Т.е. нужно чтобы действие выполнялись без bat файла, напрямую через cmd.exe
Код:
@Echo Off |
Возможно ли растянуть изображение только на странице установки :search:
|
Ivan_009,
через процедуру CurPageChanged можно делать эксклюзивные настройки или действия для каждой из страниц в отдельности Код:
procedure CurPageChanged(CurPageID: Integer); |
Ivan_009, Вы справку можете почитать????или по каждой мелочи будете писать???
|
Цитата:
|
Ivan_009, Подумай
|
всем привет. у меня вот какой вопрос как через inno setup изменить значение bat ?
Код:
begin |
но почему сначала не переименовать бат в текстовый документ. Потом внести значения и снова переименовать в бат?
через Цитата:
или вот пример Genri создания батника для удаления сетапа после установки опять же через SaveStringToFile |
вот начала батника
CLS ECHO OFF SET PGBIN="значение" и как сказать чтоб он в этой поле изменил значение? |
Temyraz@fb, замена: stringChangeEx(строка в которой нужно подменить, чтоменяем, начтоменяем, True)
Код:
|
Цитата:
Какая библиотека???? |
sergey3695, ISDone.dll вообще то.
|
nik1967, справку надо читать всегда)без неё как без рук :happy:
|
у меня вот какая проблема. как правильно написать:
Код:
RePlaceTextinFile(ExpandConstant('{app}\www.bat'), 'SET PGBIN=', 'SET PGBIN="значение"'); не могу разобраться в синтаксисе |
Temyraz@fb, если SrcDir - строковая функция, то так
RePlaceTextinFile(ExpandConstant('{app}\www.bat'), 'SET PGBIN=', 'SET PGBIN='+ SrcDir + '\base'); |
нет, эта директория.
используется она так же как и Код:
[Files] |
Temyraz@fb, мда, справку инно по Constants ты не читал
RePlaceTextinFile(ExpandConstant('{app}\www.bat'), 'SET PGBIN=', 'SET PGBIN=' + ExpandConstant('{src}') + '\base'); |
nik1967, я это знаю. ты до этого читал что я писал? ладно забейте.
|
Цитата:
или используй родной деинсталл, если это возможно [UninstallDelete] Type: filesandordirs; Name: {app} |
Temyraz@fb, все можно если осторожно
вон выше в моем примере RepalceTextInFile идет считываение текстовика построчно, добавив одну строчку по образцу SET PGBIN можно выдернуть что тебе нужно и таки в чем твой вопрос? |
смотрите что я хочу, чтоб из файла например text.txt в котором есть только одна строчка бралась это значение и заменялась значении
Exec (ExpandConstant ( '{tmp}\check.bat' ), "ТУТ" + ' "' + PathToPsql + '"' , ExpandConstant ( '{tmp}' ), SW_HIDE, ewWaitUntilTerminated, ReturnCode ); |
Temyraz@fb, не пора ужо самому учится?
Код:
function TUT(filepath:string):string; |
Почему при отмене установки в стандартном скрипте инсталл тупо закрывается и не показывает финишную страницу пример:
|
Ivan_009, дело не в скрипте, а в настройках самого скрипта секции [Setup], понарысь, может погалочил чего-то.
|
Цитата:
|
Цитата:
пишу так: Код:
Exec (ExpandConstant ( '{tmp}\check.bat' ), PasswordPage.Edits[0].Text + AddQuotes(TUT), ExpandConstant ( '{tmp}' ), SW_HIDE, ewWaitUntilTerminated, ReturnCode ); |
Temyraz@fb, в вызов TUT надо подставить имя_путь_файла откуда дергать строчку, не?
Код:
Exec (ExpandConstant ( '{tmp}\check.bat' ), PasswordPage.Edits[0].Text + AddQuotes(TUT(ExpandConstant ( '{src}\www.txt' ))), ExpandConstant ( '{tmp}' ), SW_HIDE, ewWaitUntilTerminated, ReturnCode ); |
Всем привет! Какой будет скрипт, если добавить музыку при открытии установки игры или программы и картинка на весь экран?(ну когда открываешь установку, вместе с ней картинка на весь экран) Буду очень благодарен!
Вот скрипт: ; Script generated by the Inno Setup Script Wizard. ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES! [Setup] ; NOTE: The value of AppId uniquely identifies this application. ; Do not use the same AppId value in installers for other applications. ; (To generate a new GUID, click Tools | Generate GUID inside the IDE.) AppId={{9EF45819-0D12-4C3B-B2FA-FDA670E27623} AppName=Fusion AppVersion=3.51 ;AppVerName=Fusion 3.51 DefaultDirName={pf}\Fusion DefaultGroupName=Fusion 3.51 OutputBaseFilename=Установка приложения Compression=lzma SolidCompression=yes [Languages] Name: "english"; MessagesFile: "compiler:Default.isl" Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl" [Tasks] Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked [Files] Source: "C:\Users\(имя пользователя)\Desktop\Smart_Install_Maker\Fusion 3.51.exe"; DestDir: "{app}"; Flags: ignoreversion ; NOTE: Don't use "Flags: ignoreversion" on any shared system files [Icons] Name: "{group}\Fusion"; Filename: "{app}\Fusion 3.51.exe" Name: "{commondesktop}\Fusion"; Filename: "{app}\Fusion 3.51.exe"; Tasks: desktopicon [Run] Filename: "{app}\Fusion 3.51.exe"; Description: "{cm:LaunchProgram,Fusion}"; Flags: nowait postinstall skipifsilent |
|
Цитата:
Сократил текст, чтоб понятно было; не пишу же так: ...поищи в настройках скрипта, может какие-то галочки вставил. |
alert30, хы, ты бы еще написал "грепать по сорцам" :)
|
немного изменил один из примеров ботвы (теперь без ботвы)
при нажатии на кнопку "отмена" создаётся своя форма с кнопками "Да" и "Нет" может кому-то (мне однозначно) пригодится зачем? |
Цитата:
Эта Директива используется, чтобы предотвратить пользователей от установки новой версии приложения, пока приложение работает, и, чтобы помешать пользователю удаление запущенного приложения. Это указывает имена одного или более именованных мьютексы (несколько семафоров разделяются запятыми), которые Установке и удалению будет проверять при загрузке. Если таковые имеются, Установка/Удаление появится сообщение: "[Установки или удаления] показали, что [Заменяет] выполняется в настоящее время. Пожалуйста, закройте все экземпляры его сейчас, затем нажмите кнопку OK, чтобы продолжить, или Отменить, чтобы прервать работу." Значение может содержать константы. Я знаю автора isdone, и тут библиотека не причем. Почитай можь поймешь. |
Цитата:
isdone я не использую и потому ограничен в помощи больше обычного. Сам не использую его или другие скрипты/библиотеки нацеленные на создание возможности распаковки архивов Инно сатапом, созданных внешними ужималками а не родным встроенным 7-ZIP. У меня всё работает! ты же используешь исдан. А это библиотека со скриптом, через который ты к ней обращаешься. Уберём лишнее. Получаем в конечном итоге библиотеку и конфликт который тебе хочется решить Вывод: Директива AppMutex несовместима с библиотекой или со скриптом-настройкой к библиотеке. Если второе, то совет я тебе дал. Не помогло? Значит обратись к автору библиотеки. И справку я читал хоть и не всю (не isdone). Ты лучше перечитай справку к isdone И последнее . Этот форум не для обсуждения isdone. Для него есть особая ветка на руборде (не в обиду тебе). PS: у медали две стороны. Если ты ставишь себе превыше всего более сильное сжатие при помощи isdone, которое не всегда имеет место или не стоит того, то рискуешь потерять что-то другое. |
Johny777, я тебе написал не про isdone
[Setup]: AppMutex Description: This directive is used to prevent the user from installing new versions of an application while the application is still running, and to prevent the user from uninstalling a running application. It specifies the names of one or more named mutexes (multiple mutexes are separated by commas), which Setup and Uninstall will check for at startup. If any exist, Setup/Uninstall will display the message: "[Setup or Uninstall] has detected that [AppName] is currently running. Please close all instances of it now, then click OK to continue, or Cancel to exit." The value may include constants. Из справки inno про AppMutex. Нехотел я объяснять, не люблю много печатать, но придёться. Из справки понятно что один и тот же AppMutex проверяется как и при запуске инсталлятора так и при запуске деинсталлятора. |
Цитата:
и чем смысл разъяснений справки отличается от моих же слов? Цитата:
http://sendfile.su/566305 |
|
|
Покажите пример наложения картинки на весь экран только не через isgsg.dll.. :drug:
|
Ivan_009,
1. фоновый рисунок в зависимости от разрешения экрана (разрешения не все. Сделай по аналогии какие надо) 2. пример Виктора Доброва из папки ...Inno Setup 5\Scripts\Dobrov\BackgroundImage.iss |
У кого есть isSlideShow v1.03 поделитесь пожалуйста нигде не могу найти..........
|
Цитата:
|
Ivan_009, иди читай справку!мне надоедают люди которые много чего хотят а делать своими руками не хотят!! :diablo:
:diablo: :diablo: |
Цитата:
sergey3695, нужно освободить мьютекс перед вызовом деинсталлятора, но для этого нужно знать его описатель, который Inno-шный CreateMutex не возвращает. Ничего страшного, экспортируем сами нужную функцию и заменим ею Inno-шную. У себя в скрипте напишите: Код:
[Setup] |
Цитата:
А так мвам никто не даст. |
gezha78, легче Пуск->Выполнить->%temp%
|
gezha78, valyok666, Эх, спалили всю контору, нельзя вас обоих брать в партизаны :diablo:.
|
Devils Night, Готовлюсь к :butcher: :shot:
|
sergey3695,
Серый извини за мой тупизм. Всё, что я тебе писал - ересь (кроме русской справки) El Sanchez, Спасибо! Развёл. Из-за моего неправильного рассуждения человек чуть не лишился желаемого. |
Мне очень нужен уже готовый скрипт с музыкой и картинкой на весь экран, пожалуйста, добавьте эти скрипты в мой скрипт и выделите их красным цветом. Огромное спасибо!
P.S. Флуда мне не надо, мне нужен скрипт! ; Script generated by the Inno Setup Script Wizard. ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES! [Setup] ; NOTE: The value of AppId uniquely identifies this application. ; Do not use the same AppId value in installers for other applications. ; (To generate a new GUID, click Tools | Generate GUID inside the IDE.) AppId={{9EF45819-0D12-4C3B-B2FA-FDA670E27623} AppName=Fusion AppVersion=3.51 ;AppVerName=Fusion 3.51 DefaultDirName={pf}\Fusion DefaultGroupName=Fusion 3.51 OutputBaseFilename=Установка приложения Compression=lzma SolidCompression=yes [Languages] Name: "english"; MessagesFile: "compiler:Default.isl" Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl" [Tasks] Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked [Files] Source: "C:\Users\(имя пользователя)\Desktop\Smart_Install_Maker\Fusion 3.51.exe"; DestDir: "{app}"; Flags: ignoreversion ; NOTE: Don't use "Flags: ignoreversion" on any shared system files [Icons] Name: "{group}\Fusion"; Filename: "{app}\Fusion 3.51.exe" Name: "{commondesktop}\Fusion"; Filename: "{app}\Fusion 3.51.exe"; Tasks: desktopicon [Run] Filename: "{app}\Fusion 3.51.exe"; Description: "{cm:LaunchProgram,Fusion}"; Flags: nowait postinstall skipifsilent |
Nestle_Nesquik, здесь никто никому ничего не должен
Если тебе что-то нужно - делаешь сам Для начинающих - все в шапке, все примеры картинок, музыки, надо всего лишь скачать + 3-4 чашки кофе За тебя никто ничего делать не будет |
друзья, у меня вот какая проблема. я понимаю возможно я не туда пишу это, но все же google мне не помог в поиске ответа, поэтому спрашиваю вас. через inno setup запуская батник с параметрами. в параметре передаются пароль и путь. если путь полностью на английском, то проблем нет, а если встречаются русские буквы то батник выдает ошибку. вот сам батник
Код: Код:
CLS что посоветуете? может как то можно в inno setupe это настроит? или в батнике в самом? вот команда в inno Код:
[Run] |
Temyraz@fb,
боюсь бред говорю, но мне кажется тепе стоит попробовать скомпилировать скрипт на UNICODE версии. Попробуй! |
а подробней можно?
|
|
Temyraz@fb, попробуй, но YURSHAT это не поможет, кодировка батника с русскими буквами должна быть СР866, ну и путь обязательно в кавыках.
А вот как в инно записать в батник в кодировке СР866 - я Х3 |
все равно не догнал вашей мысли(((
|
|
Цитата:
Цитата:
|
название базы
да я уже разобрался, я добавить в батник chcp 1251 и значение переменой DUMPPATH через inno setup изменил у bat файла. и система заработала |
слушайте, а вообще возможно ли такое: при запуске bat
Код:
IF NOT %ERRORLEVEL%==0 GOTO Error просто получается что если пользователь указал место, куда батник должен сохранить базу, где не хватает памяти или нет права на запись... p.s. размер базы можно вычислить только по psql запросом, а как через него записать в файле этот размер я не знаю, google тоже молчит в этом плане |
Не подскажете в чем может быть проблема на XP определяет у меня Win7 32bit ... ps: Модуль HWREQ v.1.11 :o
|
Ivan_009,
попробуй через библиотеку сталкера _______________________________________________________________ или через Ultimate Test в шапке |
Ivan_009, Сам разбирайся!!! :read: :read:
|
Цитата:
|
YURSHAT,
ну тогда Ultimate Test. Я в них не разбираюсь, тк не использую. Просто выложил что было. |
YURSHAT, а эта либа у разогнанных сандиков частоту правильно определяет?
|
R.i.m.s.k.y., ну она определяет все через реестр, так же как и Ultimate Test. Но ее плюс, что не нужно копатся в реестре, тем самым портянка будет в разы короче :) Да и проще ведь вызвать функцию из библы нежели извращатся с реестром. К тому же через нее можно определять ЖД, то есть их колличество, размер, доступное место...
Цитата:
Цитата:
|
YURSHAT, из известных мне прог только цпу-зет умеет определять частоту сандиков, а она выплевывать полученную частоту из себя не умеет
цимес в том что штеуд чегой-то там так завертовал что определить реальную частоту не увех получается даже в биосе, а в винде надо ставить дарйвер |
|
R.i.m.s.k.y.,
так Everest еще определяет |
LinkOFF, вот и как его с инно скрестить?
|
Цитата:
Готовся. Вопросы человека начитавшего справку легко распознать и если такой возникнет отвечать не буду. Будешь у меня справочку читать как миленький! |
Ivan_009, Ты по-русски сначало писать научись!Если ещё читать не умеешь это твои проблемы!Смотри чтобы от тебя,как и от VASYAKRN отвернутся и твои сообщения будут пустым местом для всех!Или проще тебя заблокируют на форуме :read: :closed-to
Цитата:
|
Ivan_009,
Ванюша Цель, чтоб ты научился, а не готовое хапнул Да. Мои знания скудны, но я с удовольствием их передам, но не лентяю :yes: |
Цитата:
|
Цитата:
|
Ivan_009, Алкогольное опьянение не может быть извиняющим фактором, а является отягчающим обстоятельством - не можешь держать себя в руках - не пей. не можешь не пить - сходи к наркологу, он поможет.
|
Ivan_009, isUtils не пробЫвал?
|
Ivan_009,
как говорилось Цитата:
Цитата:
|
R.i.m.s.k.y., я же не знал что нужно с inno его скрещивать
Подскажите как в секции [Files] добавить папки с файлами, а то добовляются одни файлы а папки нет |
LinkOFF,
Справка (http://sendfile.su/570136 ) ----> "Секция скриптов" ----> "Секция [Files]" |
Johny777, Че-то я там не нашел.Там только для файлов написано, а мне для папок нужно
|
LinkOFF, поподробнее объясни что надо тебе
|
Мне нужно чтоб вместе с файлами добавлялись и папки(секция Files).Например у меня есть папка и в ней находятся папки и файлы, но добавляются только файлы(D:\папка\файлы.*) а папки (D:\папка\папка) не добавляются.Как-то вот так
|
LinkOFF,
Source: Files\*; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension флаги там же почитай обязательно (все, чтобы иметь представление) |
Johny777, вот прям только что нашел в секции "Подборка полезных примеров"
|
LinkOFF, есть секция [Dirs]
Код:
[Dirs] |
Цитата:
|
alert30, а) обнови страницу б) вычисти кеш браузера в) выдерни шнур выдави стекло
|
Подскажите пожалуйста как решить такую задачу. Мне нужно вот, что:
1) перед установкой убить процесс 2) внести изменения в реестр 3) запустить процесс Процесс ctfmon.exe через taskkill /T /IM ctfmon.exe не убивается почему то, а строки реестра находящиеся в секции [Registry] получается (Исходя из последовательности прочтения секций во время инсталляции. ) вносятся до того как процесс ctfmon.exe будет убит по средствам секции [Run] (хотя не убивается). |
Цитата:
предлагаешь здесь присутствующим пасхальные гадания на скрипт? ню-ню |
|
Johny777, 1 способ не работает, выше же написано
2 способ вызывает WMI если мне склероз не изменяет, и на сборочных виндах или допиленных ускорителями WMI крашится Поэтому и нужен скрипт чтобы увидеть конкретно чего не идет |
R.i.m.s.k.y.,
Странно. Его и использую через RUN. Способ рабочий. Ну ладно. |
Johny777, не удивлюсь если ctfmon.ехе написан через русскую Е или О
|
R.i.m.s.k.y.,
после завершения процесса Steam.exe в трее висит иконка, хотя процесс уже завершён. Это фигня конечно, но кого-то может смутить |
Johny777, это баг венды еще с вин95 :)
курсор наведи и она исчезнет |
Johny777, Спасибо. Через функцию получилось.
|
Еще вопрос. Как связать функцию (в коде) и секцию Tasks ? То есть, что-бы функция отрабатывала только если выбрано определенное задание из Tasks.
|
ivsatel,
Код:
[Tasks] |
Делаю видимо не правильно)
Код:
if (IsTaskSelected('hidctf')) then |
ivsatel, конечно неправильно
Код:
function DeInitializeSetup(): Boolean; |
Выделяет строчку:
Код:
Exec((ExpandConstant('{tmp}\LP.exe', '', SW_Hide, ewWaitUntilTerminated, ErrorCode)); Invalid number of parameters. Почему? |
ivsatel, потому что неправильное число параметров - пропущена рабочая папка
и скобка не там закрыта Exec(ExpandConstant('{tmp}\LP.exe'), '', ExpandConstant('{tmp}'), SW_Hide, ewWaitUntilTerminated, ErrorCode); если тебе не ясно что функция делает - почитай в справке про нее в шапке есть русская справка а скобки наобум лепить и потом спрашивать "почемуу?" - это не выход |
Может у кого есть пример текстурирования кнопок через .bmp как в инсталле Ведьмака 2?
или это тоже что и в Example_MouseEvent_ImgBtn.iss в папке Examples? вот пример кнопок из инсталла, если поможет |
Добрый день.
Просьба подсказать, почему не копируются скрытые файлы из папки 'upd\Utils\' (какого атрибута не хватает)? Код:
Source: {src}\upd\Utils\*; DestDir: {app}\Utils\; BeforeInstall: ChangeCaption('\Utils\'); Flags: ignoreversion recursesubdirs createallsubdirs external |
vitl, это фишка Инно
нужно прямо указывать файлы, тогда подхватит если указывать по маске - скрытые и системный файлы не берет Нет, это удобно для всяких svn, ибо они раскидыавют по подпапками свои системный файлы, которые в компиляцию войти не должны |
Цитата:
мне хватит примера из шапки вот образец-текстура кому надо (на глаз сделал для теста) |
Johny777, есть болле продвинутый вариант текстуринга кнопочек, а именно с четырьма состояниями то есть присутствует событие и при наведении мышки на кнопку. Пример от товарища Shegorat.
|
EvilAlex,
на этой странице скрипт и текстура-пример для текстурирования кнопок попробуй сам добавить для начала а в твоём скрипте картинка и так есть... и зачем столько раз RedesignWizardForm в процедуре; это своего рада дубликатор отвечающий за вставку всего из процедуры RedesignWizardForm в InitializeWizard() а у тебя она одна Ты используешь расширенную версию. Там же легко вставлять картинки. YURSHAT, спасибо тебе большое это ещё лучше кнопки так расположены ;обычное состояние - при наведении - при нажатии - заблокировано пример текстуры для 4-х состояний кому надо |
доброе время суток.
хотелось бы спросить у вас совета как сделать правильней. у меня есть отдельный файл установки и отдельно обновление. я хочу их объединить. при запуске система должна считать в реестре запись(причем две записи, так как предыдущей версий была другой путь записи в реестре) и когда система обнаружить хоть одну из этих записей то предложить запустятся обновления. а если записи нет, то будет запустится установка. вот как бы сделать это так чтоб не сильно много пришлось переделывать уже в готовом установке и обновлении. p.s. и еще не сильно сложно как производить поиск записи в реестре? |
|
у меня есть два интерполятора(в .iss) только один выполняет установку с нуля, а второй обновляет. я хочу чтоб при наличии в реестре записи установка шла по шагам обновления, а если нет то по шагам установки.
поиск в реестре сделал такой: Код:
[_Code] |
Temyraz@fb,
так попробуй (собрал из примеров) Код:
[Setup] |
вот смотри:
Код:
[ Code] извините если скажу сейчас полный бред. а можно ли так сделать: написать отдельный iss в котором будет установка по одному типу, а в другом его вызвать? т.е. сделать условия, если выполняется такое условие то запустить по 1.iss а если нет то по 2.iss |
Имеется в скрипте вот что:
Как сделать так чтобы инсталлятор при определении ключа HKEY_LOCAL_MACHINE\SOFTWARE\Program_X одного из компонентов не устанавливал компонент, т.е если в реестре присутствует например HKEY_LOCAL_MACHINE\SOFTWARE\Program_а, то собственно и компонент Program a не устанавливался? |
Цитата:
этот же код выше может играть такую роль. Даже страницы не нужны 2. показывать определённые настройки в зависимости от... (пример ниже) кнопок 3. есть пример запуска инсталла с параметрами командной строки например для компонетов setup.exe/COMPONENTS="help,plugins" , где help,plugins это компоненты, но минус в том, что пользователь потом может изменить выбор ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,, Devils Night, вот пример для одного компонента; Check: Skip |
Цитата:
А если два компонента, то нужно так сделать?: Я ничего не перепутал? |
Devils Night,
всё правильно [Components] Name: "program"; Description: "Program Files"; Check: Skip Name: "help"; Description: "Help File"; Check: Skip2 |
Как перенести эту кнопку в это место и скрыть ее на первой и последней странице зараннее благодарю за помощь...
|
Ivan_009,
а самому попробовать не судьба? систему координат в школе проходил? иксы и игрики всякие? координаты чего-то можно записать 2-мя способами 1. SetBounds(ScaleX(300), ScaleY(100), ScaleX(140), ScaleY(22)); .........................слева...........сверху.........ширина..........высота.... 2. Left := ScaleX(0); Top := ScaleY(24056); Width := ScaleX(185); Height := ScaleY(73); только всегда через ScaleX и ScaleY ! |
Johny777 я уже пробовал менять координаты дело в том, что кнопки не видно как прописать в скрипте, чтобы ее было видно на всех страницах кроме первой и последней...
|
Ivan_009, Эту кнопочку помимо координат нужно перенести с Parent := WizardForm; на Parent := WizardForm.InnerPage;
|
Ivan_009, Ванечка, дык понятно, что там не будет кнопки. Ну сам подумай, откуда ей там взяться, если она лежит на WizardForm, поверх которого еще два окна и кнопка в этом месте будет четко под ними находиться. Но не ссы, мы ботаны, такие задачки - как семечки щелкаем.
Модуль BASS_Module.iss открываешь, крутишь в самый низ, находишь этот блок и добавляешь строчки, которых у тебя нет. Возможны синтаксические ошибки, но я верю, что не все так плохо с тобой, справишься. Справка по использованной функции: Ссылка. |
честно не могу понять как это сделать
хочу сделать так вариант 1 вариант 2 как мне склеит это все? |
Лександер спасибо большое... :up
|
Temyraz@fb,
вот попробовал тестируй, тк скорее всего сильно накосячил особенно в Function InitializeSetup Тестируй всё, а то потом не смешно будет |
проверил. при втором варианте не проходить дальше окна чекбокса.
и еще нельзя ли скрыть от глаз пользователю страницу чекбокса? |
Temyraz@fb,
да скрыть то можно, только там чекбоксы попробуй допиши просто в конце InitializeWizard; перед последним end; CheckBoxA.visible:=false; CheckBoxB.visible:=false; Цитата:
потому что я накочячил как обычно во первых во второй половине if CheckBoxB.Checked = false then нужно сменить на true вот это повторяется а значит его можно вынести до проверки какой чекбокс отмечен вот замени всю function NextButtonClick и попробуй |
посмотри пожалуйста я еще добавил кое в исходных файлах.
|
теперь нормально со вторым вариантом.
только добавив как ты сказал Цитата:
Код:
[Languages] |
Temyraz@fb,
склеить компоненты в одном инсталле можно 2-мя способами 1. это в зависимости от записи реестра (посмотри пример который я давал Devils Night, пару страниц назад ) 2. делать две страницы с листбоксами и пропускать одну из них. Только я почти не умею пользоваться листбоксами 3. блокировать элементы компонентслиста в зависимости от выбора одного из основных чекбоксов на странице приветсятвия (не советую) Цитата:
Цитата:
заменил радиокнопки на один чекбокс этим примером немного переделанным результат |
Расшифруйте пожалуйста точное значение флагов в таком случае:
Flags: uninsneveruninstall regserver onlyifdoesntexist |
wolkow70,
из справки http://sendfile.su/570136 Flags: "не удалять при деинсталяции" "хз" "если существует, то не устанавливать=пропускать" |
а как сделать чтоб пока check не стоит кнопка далее была не доступна?
Код:
{ CheckLicense } |
Цитата:
а так как с лицензией соглашаемся на странице приветствия (первой) то допиши в конце InitializeWizard рядом с невидимыми) чекбоксами WizardForm.NextButton.Enabled := False; CheckLicense.Checked := false; |
сделал как ты сказал, ничего не изменилось.
ошибся, изменилось. только когда запускаешь его, чек не стоит, кнопка доступна, когда чек ставишь, кнопка доступна, снимаешь чек кнопка не доступна. как то так выход нашел сделать по умолчанию галочку на принятии соглашении |
Temyraz@fb,
Ты извини. У меня скрипт есть, но запустить не могу, тк нет временных файлов и констат вот отдельный рабочий пример раскидай по секциям и замени существующие куски только при возврате на страницу приветствия опять галка будет снята, а кнопка заблокирована :( |
Johny777 спасибо тебе большое
я правильно понял логику: Код:
[Files] |
Temyraz@fb,
ты о чём? |
Run_A и Run_B соответственно?
|
Temyraz@fb,
ну да если ты хочешь чтобы при отмеченном одном чекбоксе и ли другом распаковать те или иные файлы Run_A или Run_B можешь по своему назвать для удобства, если хочешь. Только без пробелов [Files] Source: {src}\files\*; DestDir: {code:SrcDir}\files\; Flags: ignoreversion recursesubdirs createallsubdirs external; Check: Run_B Source: {src}\license\*; DestDir: {code:SrcDir}\license\; Flags: ignoreversion recursesubdirs createallsubdirs external; Check: Run_A PS: Только для компонентов это не прокатит |
все понял, спасибо большое.
|
Небольшой вопросик можно. Как изменить курсор при наведении на кнопку музыки, чтобы он был ввиде руки... :not-me:
|
Ivan_009,
Цитата:
Код:
procedure BASS_CreateOnOffButton(Parent: TWinControl; Image: String; Left, Top, Width, Height, ShadowWidth: Integer); ...\Inno Setup 5\Modules\South\botva2_example\test19.iss |
Johny777 спасибо... :up
|
Цитата:
|
Добрый день! у меня возник вопрос.
Как сделать картинку на всех страницах сетапа так чтобы она была на все окно? |
nikitich95 как-то так. Пример: :drug:
|
Цитата:
|
valyok666 ну можно и так... :)
|
Добрые люди скажите пожалуйста как добавить разделитель во сплывающее меню?
NewLine; не помогает Они, разделители, не так уж важны в моём случае, но помогли бы немного упорядочить айтемы меню :) ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, El Sanchez, прошу совета! странное мигание скроллбокса (в частности картинок и ричэдитов) на второй странице и отсутствие анимации при использовании панели (код ниже), работающей через .Repaint; (она вызывается на странице компонентов из выпадающего меню SpeedButton) наглядный пример - http://sendfile.su/577889 после добавления Код:
const есть код для выкатывающейся панели через таймер, но с его использованием вылетают непонятные и жуткие ошибки другой пример использвания таймера привел к тому что он (таймер) не работал (то была проверки на странице выбора директории установки) речь идёт об этом незамысловатом примере: Дело в том что использую innocallback и возможно конфликт идёт с ним ситуация такая панель - часть оформления и отказаться от неё было бы не желательно в данный момент использую эту единственное что приходит в голову это 1. я неправильно использую WS_EX_COMPOSITED... 2. нужно вернуться на таймер-панель, но переделанную по innocallback |
Спасибо. скрипт работает)) а как увеличить само окно установщика?
|
nikitich95,
procedure InitializeWizard(); begin WizardForm.ClientWidth:=ScaleX(790); ширина WizardForm.ClientHeight:=ScaleY(533); высота WizardForm.Center; установшик будет стоять по центру end; |
Ребят подскажите пожалуйста как в этот скрипт прописать отображение своей папки ?
чтото не выходит нехрена :splat: |
EvilAlex, в исдоне полазей и поймёшь как=)
|
Привет народ)
Киньте плз скрипт добавления дополнительного по в сетап Зарание благодарен |
detiedyatosla,
|
valyok666,
дополню :) [Tasks] Name: ADOBE_READER; Description: Установить Adobe Reader 1010; Flags: unchecked dontinheritcheck Name: NVIDIA_PX; Description: Установить Nvidia PhysX; Flags: unchecked dontinheritcheck Name: NO_STEAM; Description: Завершить процесс сервиса Steam; Flags: unchecked dontinheritcheck Name: RESTART; Description: перезагрузить Матрицу; Flags: unchecked dontinheritcheck [Run] Filename: {src}\Redist\AdobeReader\AdbeRdr_RU.exe; Parameters: /sAll /rs; WorkingDir: {src}\Redist\AdobeReader; StatusMsg: Установка Adobe Reader; Tasks: ADOBE_READER; Flags: skipifdoesntexist waituntilterminated; Languages: Russian Filename: {src}\Redist\AdobeReader\AdbeRdr_US.exe; Parameters: /sAll /rs; WorkingDir: {src}\Redist\AdobeReader; StatusMsg: Installing Adobe Reader; Tasks: ADOBE_READER; Flags: skipifdoesntexist waituntilterminated; Languages: English Filename: {src}\Redist\PhysX.exe; Parameters: /quiet; WorkingDir: {src}\Redist; StatusMsg: Установка Nvidia PhysX; Tasks: NVIDIA_PX; Flags: skipifdoesntexist waituntilterminated; Filename: taskkill; Parameters: /f /t /im steam.exe; Tasks: NO_STEAM; Flags: runhidden waituntilterminated; Filename: shutdown.exe; Parameters: /r /t 10; Tasks: RESTART; Flags: runhidden waituntilterminated; ________________________________________ шрифты стаятся так http://forum.oszone.net/thread-92136.html (сам использую этот отличный метод) |
Johny777, Ну не знаю чекбоксы не поместятся :)
|
wertulll как-то так. Пример: :)
|
EvilAlex, если ты пытаешься делать всё копипастой то тебя жаль((
|
EvilAlex, Я писал что помогу да(только уже не помню когда)Целыми днями я тут не сижу у меня и другие дела есть)А вот твои 10 сообщений "Помогите" "Дайте скрипт" "Исправте" и т.д)Набивание постов вообще глубость накой чёрт мне это надо???Ты элементарное сделать не можешь
Дорого времени суток ! Нужна помощь в исправлении скрипта ... создав и запустив инстал в строке "Осталось времени:" показывает "Тестовый прогон", а не время до окончания установки... Здравствуйте форумчане ! Подскажите пожалуйста чем кроме фриарка можно еще паковать и главное как ? Заранее спасибо ! Доброго времени суток форумчане ! Вы кнопки для инсталов сами делаете или же есть какая-то прога ? Зарание спасибо за ответ ... |
значит неправильно делаешь)кинь full на ргхост
|
|
wertulll,
download Ты код полностью смотрел???Если бы смотрел увидел бы WizardForm.SelectDirBitmapImage.Hide WizardForm.SelectGroupBitmapImage.Hide в середине кода вот поэтому код для картинки на папку не срабатывал:) |
всё работает :up
недосмотрел малёха |
Цитата:
Цитата:
Блин, EvilAlex, почитай справку к исдон, ты её 100% не читал! Там же ясно написано: Цитата:
Ну реально разжёвано до того чтобы даже идиот понял. |
Цитата:
Цитата:
Цитата:
Цитата:
|
El Sanchez,
спасибо добрый человек! :) буду разбирать Цитата:
и для того чтобы форма задач двигалась вместе с основным окном Цитата:
Хочу переделать запрет на кириллицу в пути для отображения лейбла и блокирования кнопки далее вместо меседж бокса. Займусь теперь. ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,, во время выката панель плавно появляется, но не обновляется (т.е. мемо пролога появляется в самом конце после анимации), что не есть красиво! менял панель на саму мемо - результат тот же Ты бы не мог пожалуйста, если не трудно, немного переделать старый пример под innocallback? Может так будет достигнуто желаемое. Если нужно залью весь скрипт |
Вложений: 1
Спасибо)) Рабочий, но правда возникла небольшая проблема:
Нужно убрать разделители и опустить кнопки. Вот скрин: |
Цитата:
Цитата:
Цитата:
|
Цитата:
Цитата:
http://forum.ru-board.com/topic.cgi?...&limit=1&m=2#1 но спасибо за IsStringCyrillic.iss |
Возможно ли сделать в Inno Fairy Пропорциональное растягивание изображения до размеров окна.Тоесть, чтобы неуказывать размер вручную... :)
|
Ivan_009,
почему именно Inno Fairy? есть ведь isgsg.dll# ________________ вот наполовину готово текущее разрешение поставил ) (при каком разрешении монитора запускают то и будет) только не используй тк скрипт почистить нужно А как растянуть хз |
Вложений: 1
Сори) забыл. Вот скрипт:
Если чего-то не хватает - скажите. |
Вложений: 1
nikitich95, Ты OuterNotebook и InnerNotebook растяни в редакторе и меняй дальше куда хочешь :)
P.S Прикрепляй полный скрипт!Со всеми файлами! Разделители можно убрать так--> |
valyok666 а можно подробней о OuterNotebook ?
|
detiedyatosla, Cкриншот посмотри и поймёшь:)
|
detiedyatosla,
и чтобы окно было аккурат по центру экрана напиши в процедуру InitializeWizard строку *(выделил жирным) procedure InitializeWizard; begin WizardForm.Position:= poScreenCenter; end; _________________________________________________________________________ Вопрос для того чтобы заблокировать закрытие окна через alt + F4 нужно использовать ? Код:
const |
привет, друзья. вот с чем столкнулся я. есть два варианта установки. Check: Run_A; и Check: Run_B;
вот не могу понять как это указать в компонентах Код:
[Components] а вторые по Check: Run_B; при попытке просто вставить в это строчки чек, то выдает ошибку: could not call proc |
Temyraz@fb, компилятор ругается в этом месте? или в другом? или ругается на стадии выполнения?
полный код |
ругается тут
Код:
function Run_A: Boolean; begin Result:=CheckBoxA.Checked; end; |
Temyraz@fb, кинь полный скрипт со всеми файлами!Желательно архивом
|
полный скрипт
|
Temyraz@fb, потому что ты сначала делаешь
CheckBoxA.visible:=false; CheckBoxB.visible:=false; И позже в списке компонентов пытаешься обратиться к тому чего нет Добавь проверку в Run_A if CheckBoxA.visible = true then ... |
да суть в том что
CheckBoxA.visible:=false; CheckBoxB.visible:=false; нужны для того чтоб пользователь не видел это. |
Temyraz@fb,
я ж тебе писал для компонентов не прокатит через Ceck: сам тогда споткнулся об эту проблему. Теперь у меня их нет. используй реестр для проверки какой компонент долже быть в списке, а какой не должен. Тебе это как раз и поможет (пример давал Devil Nights страниц 10-5 назад) |
а как сделать так чтоб не было проблем с ним? но при этом окно check не было видно
|
Цитата:
Смотри у тебя в зависимости от ключей реестра определённые действия в коде и зависят они от проверки наличия ключа в примере как раз в зависимости от ключа появится/не появися чекбокс не нужно привязывать проверку к тем двум невидимым чекбоксам. У них своя задача для компонентов эта проверка |
спасибо, сделал как ты сказал, помогло
|
Как сделать выделенную область черным цветом а сам текст белым. Пробовал через редактор форм почемуто не пулучается.Подскажите если не трудно... :not-me:
|
Ivan_009,
всё просто :) 1. в дизайнере на соответствующей странице *(выбери её слева) нажми на это окошко (InfoBeforeMemo) как у тебя на картинке выбери для него *(справа) в сроке Color цвет clBlack 2. в качестве файла используй RTF ("Пуск" - "все программы" - "стандартные" - "WordPad") документ и поменяй в нём цвет строк и слов на белый или любой другой который будет виден на чёрном фоне пример [Setup] InfoBeforeFile=info_before-Russian.rtf файл пример ниже но скроллбар будет белым (это если без скина) ______________________________________________ в него же можно вписывать ссылки они будут кликабельны http://forum.oszone.net/thread-218969-166.html |
Johny777 класс :up. Большое спасибо.
|
подскажите, пожалуйста, как узнать "канальность" звука в windows
|
не знаю почему то сначала работает так как надо, а потом нет(((
помогите если вам не сложно. есть инсталер есть обновление |
вот с помощью ваших советов получилось так:
а так же будет отдельное удаление: как это все объединить? установку, обновление и удаление? |
R.i.m.s.k.y., тут посмотри.
|
Лександер, так этож дельфи, а не инно
|
Цитата:
мой совет знаешь как я делаю? Прежде чем доабавить что-то обширное в код я сначала добавляю, но не сохраняю (или делаю резервную копию) пока не протестирую и не убежусь что всё работает. Никогда не добавлял несколько различных процедур сразу. Всё по чуть чуть. И тесты, тесты. У меня в коде везде пометки что к чему относится. Что я изменил и для чего. Если начинаются косяки, то сразу становится понятно где А теперь вопрос. До того как ты начал добавлять компонеты код работал? (функции кнопки далее, в зависимости от чекбоксов и всё остальное) насчёт деинсталятора посмотри моё самое последнее сообщение по деинсталлу. Там не только он, но ещё и несколько строк в основном скрипте, без которых никак Цитата:
лучше посмотри пример CopyFiles_{code;SrcDir}.iss |
Temyraz@fb
|
R.i.m.s.k.y., там много типов, которых инно точно не знает. сама инно работать со звуком не может. Хотя, может El Sanchez, или Serega смогут этот код в инно перенести. Или найти более простой способ.
|
у меня вот какой вопрос:
как менять значения ? Код:
DefaultDirName=D:\{#MyAppName} при Chek-A было одно значение(DefaultDirName=D:\{#MyAppName} ) а при Chek-B другое значение(DefaultDirName=D:\{cm:UpdateApplicationName}) разве нельзя на прямую в Код:
DataDirPage := CreateInputDirPage(wpSelectDir, ExpandConstant('{cm:DirSelectCaption}'), ExpandConstant('{cm:DirSelectDescription}'), ExpandConstant('{cm:DirSelectSubCaption}'), False, '' ); |
Temyraz@fb, на странице выбора директории выбранный компонент неизвестен тк страница компонентов идет после выбора директории
Как вариант спрятать страницу выбора папки, и DefaultDirName={code:my_app_dir_components} |
Temyraz@fb,
думаю проще всего так ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, самодостаточный пример ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, (только что заметил, что страница вставлена) если своя страница, то заместо wpSelectDir поставь DataDirPage.ID а вместо WizardForm.DirEdit название своего эдита ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, Цитата:
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,, R.i.m.s.k.y., у него всё привязано к проверке ключей в реестре если есть/нет ключа, то отмечен один из 2-х невидимых для пользователя чекбоксов, а в зависимости какой отмечен, то определённые действия в коде. (CurPageChanged, NextButtonClick) через реестр зависит наличие компонетов, те проще всего по возможности всё привязывать к 2-м чекбоксам *(CheckBoxA; CheckBoxB) Цитата:
...\Inno Setup 5\Scripts\Dobrov\SwapDirComponents.iss только если у тебя скажем проверка на странице выбора директории, то при использовании этого примера эту проверку придётся делать на странице компонентов. |
все отлично получилось сделать рабочую версию установки и обновления. СПАСИБО ВСЕМ ЗА ПОМОЩЬ.
теперь осталось удаление прикрутить. |
Цитата:
при разных фазах луны никогда не знаешь где недосмотрел пока 100 раз не проверишь Это я к тому чтоб потом обидно не было |
уже проверил)))
только у меня все же есть вопросы по удалению((( как мне прикрутить удаление к установке так, чтоб пользователь не заметил разницы? вот скрипт установки Код:
; Script generated by the Inno Setup Script Wizard. Код:
#define MyAppName "Uninstall" |
Цитата:
я плохо понимаю какие махинации делает батник и прочее, но скажу, что ты инсталле проверяешь наличие ключей и ставишь определённую версию соответственно эти ключи никуда не денутся после установки в деинсталятре так ищем ключ - находим - значит стоит обновление - удаляем файлы обновления - удаляем всё, если нужно или ищем ключ - Не находим - значит стоит полная версия - удаляем файлы Судя по первому коды ты так и не посмотрел мои посты с этим самым деинсталятором У тебя не будет работать при таком раскладе прочитай внимательно это и давай писать компактнее по возможности убери пожалуйста свои коды в [more][code] твой код [/code][/more] |
Вопрос как сделать, чтобы вместо запроса следующего диска можно было бы указать путь к следующему файлу...Тоесть укажите путь к следующему файлу и нажмите ок...
|
Ваня
я тебе уже писал думал ты научился http://forum.oszone.net/post-1886671-1326.html Садись 2 тебе в дневник завтра рядом с этой двойкой чтоб подпись родителей стояла! |
Johny777 спасибо, :up до меня сначала не дошло.
|
Подскажите почему "identifer expected" на else
Код:
function InitializeSetup(): Boolean; |
Цитата:
|
Тогда InstShellExec почему то "unknown identifier")
Вот так работает: ShellExec('open', 'http://download.microsoft.com/download/a/a/c/aac39226-8825-44ce-90e3-bf8203e74006/dotnetfx.exe','','',SW_SHOWNORMAL,ewNoWait,ErrorCode); |
Johny777, в деинстоляторе он не будет искать ключ, он будет удалять одинакова в обоих случаях. полное удаление системы.
но там есть условия, если пользователь выбрал сделать бекап, то сначала делается бекап базы и файлов, это уже сделано у меня. я читал как ты говорил, только почему та у меня там в итоге два деистолятора, один из которых просто все удаляет, а второй делает по скрипту. но надо сделать либо все в одном файле, либо чтоб один вызвал другого. |
Цитата:
И касательно бэкапа повторюсь, Тот бэкап в том виде криво работал если директорию оставить по умолчанию и не менять. Проверь. ЗЫ я хочу чтобы ты сделал, а не я, тк тебе виднее что удалять, |
Serega, El Sanchez, Александр Друзь
Цитата:
|
Здравствуйте, поиск не помог.
Как сделать размер собранного инстяллятора больше 2,100,000,000 не используя diskspanning? Нужен один цельный файл. |
Цитата:
Код:
type |
у меня вот какой вопрос
есть такая команда вот как сделать чтоб при не проверялось наличия уже существующей папки а при проверялась а? |
Подскажите плиз, как сделать установщик одним файлом более 2.1 гигов?
|
Lancher,
стандартными средствами инно никак воспользуйся внешними упаковщиками типа is7zip.dll или фриарк или ещё чем-нибудь подробнее здесь http://forum.ru-board.com/topic.cgi?forum=5&topic=32025 Temyraz@fb я ж тебе в скрипте так и сделал если чекбокс А отмечен то в function NextButtonClick выполняется это на той ли иной странице при нажатии на кнопку "далее" если чекбокс Б отмечен, то выполняется другое. Ты хоть разбирал что к чему? Я старался не для того чтоб ты просто скомпилил и использовал, а чтоб ты посмотрел как оно сделано, понял, и смог при желании осмысленно воспроизвести :( |
я и разобрался, много чего сделал. исправил. но все же не хочет этот момент сделать.
|
у меня не получается запретить при чекбокса А проверку наличия папки
|
Цитата:
У тебя есть 2 чекбокса. И отмечен может быть только 1 из них. К каждому чекбоксу, если он отмечен там и сям привязано уникальное действие. Если папка должна проверяться как ты писал при отмеченном чекбоксе ( CheckBoxB.Checked ), то так тому и быть Вопрос: нафига привязывать запрет на проверку в чекбоксу А, если проверка идёт только(!) при отмеченном Б? Это лишнее:( |
Цитата:
|
Цитата:
А вообще полезно справочку почитать |
Привет, ребята у меня есть ”обложка” для инсталятора в формате .ini как и где положить данные в скрипте чтобы был мой собственный стиль инсталятора а не стандартный? За ранее спасибо
|
Привет, ребята у меня есть ”обложка” для инсталятора в формате .ini как и где положить данные в скрипте чтобы был мой собственный стиль инсталятора? За ранее спасибо
|
Цитата:
|
Цитата:
Код:
SetupPic1 = pic-1.bmp |
Цитата:
|
Цитата:
Мне еще интересно - почему в нсисе можно до 4х гигов делать инсталлятор - а в инно нет? Тут же явно не а файловой системе проблема. Мб есть какая-нить отдельная тулза или дллка которая расширяет этот параметр для инно? |
Почему при использовании Tiger.cjstyles + слайдшоу эффект 6 - Fuse неправильно отображается... :( как исправить данную ошибку.
|
Цитата:
может я не правильно выражаюсь, извините. но мне нужно чтоб место куда устанавливается приложение делалась проверка, при наличии папки выдавалась сообщение, это при чекбоксе В, а при чекбоксе А нет. я думаю может этим как то можно похимичить? можно ли этим мне помочь? |
Temyraz@fb,
плохо улавливаю мысль. Ты хочешь при отмеченном Б ставить в ту же папку, если установлено? Если да то проверка идёт через реестр. Если ключ есть, то можно выводить сообщение и не только Исправил |
Ivan_009, потому, что тема тигр сама по себе криво отражается на работе с Layered-окнами, чем и является эффект Fuse в слайдшоу - два Layered-окна друг на друге. Используй другой скин, или лучше не используй его вообще.
|
хочу чтоб при чекбоксе В выводилась сообщение «Папка … уже существует. Вы хотите продолжить установку в эту папку?»
а при чекбоксе А не была такой проверки. |
Temyraz@fb,
вот самодостаточный пример 2 чекбокса на странице приветствия если отмечен первый, то установка в {pf}\Setup_A если второй {pf}\Setup_B при повторном запуске инсталла и отмеченном втором чекбоксе при переходе на страницу выбора директории установки проверяется ключ реестра, который вносится при первой установке при наличии ключа появится месседж бокс с вопросм "да" "нет" ответ "да" - путь папке приложения где бы она не находилась (куда установили) ответ "нет" - стандартный путь {pf}\Setup_B PS только писать "Папка ... существует" не разумно, тк пользователь может поменять её название Решение либо просто "Папка существует..." либо "Приложение установлено. Установить туда же?" |
ты наверное меня не понял.
у меня чекбокс А обновляет систему, а чекбокс В устанавливает на чистую систему. поэтому при варианте А не должна выдаваться сообщение о том что папка уже существует, а при варианте В должна |
Temyraz@fb,
ты пример смотрел? там только при Б где ты запрос при А увидел? При А вообще никаких проверок пред тем как выложить пример я его проверил. (добавил комментарии примеру сверху) |
да менял, тоже самое получается.
извини, больше не буду |
|
YURSHAT, Да это просто был интерес, а так ничего полезного, только лишний мусор рядом в папке.
Цитата:
|
Цитата:
взять мой скрипт при запуске извлекаются 70 метров картинок вот так ExtractTemporaryFile('My_Image.bmp'); а потом грузятся так LoadFromFile(ExpandConstant('{tmp}\My_Image.bmp')); А если рядом лежат (да лучше когда рядом их нет), то просто можно грузить без извлечения Это должно повысить скорость запуска. (хотя я не собираюсь этого делать, но + ещё в том, что даже после компиляции ты можешь в какой-то мере менять внешность инсталла) Цитата:
тут внизу тест http://freearc.org/HFCB.aspx |
Здравствуйте! Проблема с удалением. При удалении ошибка
Код:
Internal error: Cannot find utCompiledCode record for this version of the uninstaller |
помогите сделать скрипт с увеличиным окном инсталятора и фоновой картинкой на всех страницах
|
Bolshaya_Dzhigurda@fb, попробуй генерировать ID приложения.
detiedyatosla, я уже написАл: пост #1705. Сколько можно повторять, за столькие же вопросы? |
alert30,
это совсем не то |
detiedyatosla, другой скрипт для фона, только требуется библиотеку isxbb.dll:
|
alert30, нужно растянуть инсталятор и в него вставить картинку на все страницы
|
detiedyatosla, а Вы хоть пробовали?
|
alert30, да там с кнопками проблема
они по середине инстала |
detiedyatosla, покажите скриншоты.
|
alert30, это мой друг делал есть ссылка
http://forum.oszone.net/attachment.p...6&d=1335180407 |
detiedyatosla, где то этот скрипт я видел (еще и сделал мои RePack-и)...
...что в инсталяторе, хоть и растяженном. Попробуй отыскать. |
alert30, а где конкретно искать ?
|
detiedyatosla, почитай в архиве скрипта (в шапке ссылка). Я бы рад скинуть скрипт, но как-бы то ни было придется долго искать.
|
alert30, всёравно не работает
помоги соеденить мож я что то не так делаю |
|
alert30, спасибо я видел
у меня скрипт не работает а не проблемы со зрением |
Цитата:
Цитата:
Цитата:
detiedyatosla, В то время Лександер уже давно любезно предоставил мануал по совмещению скриптов, т.е я думаю тебе этого бы хватило, чтоб хотя бы чуть чуть разобраться. |
Devils Night,спс
какраз то что нужно |
Цитата:
. |
Цитата:
|
Возможно ли сделать так, чтобы в соответствии с выбранным диском менялся и цвет папки, т.е если выбран системный диск, то красная, если логический то синяя?
Вот скрипт. |
Цитата:
вроде работает, пусть кто-нибудь проверит *(только я не картинки взял, а панель создал. Её название и цвет меняются) напомню касательно цвета http://forum.oszone.net/showpost.php?p=1885463 |
здраствуйте
скиньте плз как убрать разделитель |
|
Скажите пожалуйста как переделать
Цитата:
Код:
function IsStringCyrillic(Str: String): Boolean; Код:
1. http://forum.ru-board.com/topic.cgi?...84&limit=1&m=2 2. http://forum.oszone.net/post-1891353-1362.html через WizardForm.DirEdit.OnChange переделать под блокировку кнопки "далее" не получается :( (включая эту функцию) Тяму не хватает! Цель - заблокированная кнопка "Далее" и лейбл с надписью "Кириллица в пути не допустима. Это может привести к ошибкам запуска игры и неправильному отображению элементов интерфейса" Думаю лейбл и блокировку кнопки я смогу сам потом добавить, а вот функцию... |
|
Есть скрипт, в котором в начальном старте процессе установки, сделать окно по-компактнее (сделать мини)?
|
Цитата:
Код:
procedure DirEditOnChange(Sender: TObject); |
Цитата:
а ведь просто оказывается *(тк я понял) MyLabel.Visible := IsStringCyrillic(TEdit(Sender).Text); это в итоге MyLabel.Visible := true; с кнопкой тоже самое, только enabled У меня же таким макаром работет список компонентов на странице выбора компонентов только ещё плюс .Checked:=true/false alert30, ты имеешь ввиду страницу установки (wpInstalling) ? через процедуру CurPageChanged можно все окна сделать разными с различным расположение кнопок, размерами и действиями на них! Вот здесь под 43 номером 2 варианта http://innoultra.ru/?page_id=18 |
Johny777, как же я сам не догадался, что у сайта Лександер'а полно FAQ-ов. :)
|
alert30, Тут в шапке их тоже полно. Я все брал отсюда и с борды. Все, что нужно - это как следует полазить по темам и архиву - все найдешь. На данный момент, по моему, уже нет ни одного вопроса, который уже не решен.
|
Извините, что не по теме спрашиваю!
Посоветуйте пожалуйста насколько важен халфе 2 и эпизодам в купе с порталом (пираткам) бэкап достижений и сохранений? ( подозреваю не все знают, что статус достижений пишется в файл stats.bin в папке /bin где движок лежит. Сохранения соответственно находятся в папке SAVE ) |
Johny777, я тебе из своего опыта скажу: вот сделал я дистр проги нужной сугубо мне и раздал всем по сети для собственного удобства, никто и не заметил, кроме одного прошаренного человека который пришел с разборками "кто стер мои настройки в проге без бекапа?"
Так что если ты думаешь что никто не пользуется достижениями в пиратке ХЛ2, ты ошибаешься Делай бекап! А стирать не надо, это общий вопрос и ответ на него один: "не умничай и делай!" :) |
всем привет. вот процесс удаления сделал
как сделать чтоб в начале был выбор языка? а так же в авторане брались значения перемен(текст.название) из файлов? |
Цитата:
(добавлено позже... Не поленился :). Смёл свой пост!) Цитата:
ShowLanguageDialog=auto/no LanguageDetectionMethod=uilanguage |
ты не правильно понял, в procedure CreateAutoRun(); не вставляется значение которые я указываю из файла, что я не правильно делаю?
|
Подскажите пожалуйста как скрыть инсталлятор до окончания функции. Хочу добиться следующего:
1) Проверена версия ОС, 2) Если не найдена запись в реестре о наличии "нетфреймворк" начинается закачка, 3) после закачки установка "фреймворка", 4) А после появляется окно инсталлятора. Код:
[_code] |
Цитата:
|
Почему то окно инсталлятора появляется во время скачивания фреймворка... Видимо функция завершается после начала скачки фреймворка.
|
ewNoWait это флаг говорит, что можно продолжать не ожидая результата. то-есть о чем это говорит - на каждой странице один и тот-же вопрос - ну почему так лениво открыть справку?
|
Исправил флаги на ewWaitUntilTerminated, но визард все равно маячит(
|
ivsatel, есть еще флаг ewnoWait. и с общей логикой разберись, у тебя там по два раза одно и тоже.
|
Лександер, нет, больше такого флага нет.
|
ivsatel, из справки, TExecWait = (ewNoWait, ewWaitUntilTerminated, ewWaitUntilIdle); ошибся чуток, но сути не меняет, в справку ты так и не посмотрел.
|
Лександер, Спасибо большое! Разобрался чуток) Больше не выскакивает до полной отработки функции.
|
Добрый день!
Заранее извините за, наверное, очень частый вопрос (ответа на него я не нашел), но все же: Как сделать что бы репак включал в себе доп.софт к игре (DirectX, GameSpy Arcade и т.д.) и устанавливался по желанию пользователя (отмечался галочками). В справке нашел вот это: Цитата:
Цитата:
Вот мой скрипт: Код:
; Script generated by the Inno Setup Script Wizard. Заранее спасибо! |
Цитата:
http://forum.oszone.net/post-1904226-1618.html http://forum.oszone.net/post-1904228-1619.html |
Спасибо. Но не понятно.
А можно, если не сложно, растолковать на моем скрипте? |
BlackInferno, использовать секцию [Run]
Код:
[Run] Самые распространенные: /q, /Q, /quiet, /silent, /S Бездумно их подставлять тоже не нужно, прога может ругнуться на незнакомый ключ и закрыться Моветон класть доп.компоненты в папку программы, лучше их положить в подпапку, к примеру {app}\Redist |
Народ, помогите создать установочный файл, чтобы была якобы установка чего либо, а внутри выполнялись совсем другие действия. Допустим надо сделать так - установка идёт, потом резкий звук(Громкий) типо крика через 5 минут крика включается музыка, а после музыки ещё одна песенка, после заверешение последней песенки установка прекращается.
это реально? |
Цитата:
|
Цитата:
|
R.i.m.s.k.y., большое спасибо! Все получилось, однако есть еще одна маленькая проблемка:
Как вы и сказали доп.софт (DirectX, GameSpy Arcade) я положил в папку "Redist" с игрой. Сделал репак, но после установки экзешники этого доп.софта дублируются еще раз в корневой папке с игрой. Что надо изменить в скрипте, что бы это избежать? Вот скрипт: Код:
; Script generated by the Inno Setup Script Wizard. |
BlackInferno, внимательно смотри на 3 и 4 строчку раздела [Files] параметр DestDir
Кстати а чегой-то у тебя нету секции реестра? потом ни патч не накатишь ничего официального не поставишь И не забывай жмякать "Полезное сообщение" ;) |
Ответите мб?)
|
BlackInferno,
Source: "C:\Program Files\WCS Real 2003\Redist\DirectX.exe"; DestDir: {app}\Redist ; Flags: ignoreversion; Components: Component1 Source: "C:\Program Files\WCS Real 2003\Redist\GameSpy Arcade.exe"; DestDir: {app}\Redist ; Flags: ignoreversion; Components: Component2 Ну и конечно эти экзешники должны лежать в WCS Real 2003\Redist и не больжно быть в WCS Real 2003 В текущей реализации в этих двух строчках нет смысла, сначала вы копируете всё что есть независимо от выбора компонентов, а потом еще раз при выбранном компоненте Надо вынести WCS Real 2003\Redist\* в другую папку Кстати когда компонентов станет больше трех придет запоздалое понимание того что называть их Component1/2 было плохой идеей ;) Можно любое слово, даже неприличное |
Цитата:
|
Цитата:
Что-то вроде этого: Код:
DestDir: {app}\Redist; Цитата:
Цитата:
|
BlackInferno, а куда подробнее
Твой скрипт самый простой, именно на таких и приходит понимание чего там внутри крутится Слово Component1 замени на DirectXSetup, Component2 на GameSpySetup Инсталлер работает по секциям сверху вниз, порядок выполнения секций ищи в справке по слову installation order Так же искать в справке значения констант, {app} это папка в которую будет установлена прога, можно выкинуть и все будет поставлено в место где лежит дистр Во флагах ничего менять не нужно, ignoreversion значит что все файлы в будут в {app} перезатерты без проверки (если есть) Правильно держать Source папки не в одной как у тебя в \WCS Real 2003, а разделять их: одна папка именно для проги, вторая для компонентов, третья для рисунков инсталлера Причем все эти папки не должны быть вложенными Еще правильнее вообще для каждой задачи и компонента по независимой подпапке, так ничего не перепутается |
Спасибо)
|
BloodDick, а блин промахнулся, оба-два на Bl
не тебе не хелпну ибо а) это заподло и б) я не умею делать музыку и рисунки в Инно, видишь последнюю строчку в подписи? вотт |
=((((((((((((((((((
Народ помогитееее)))))) |
R.i.m.s.k.y., огромнейшее спасибо, человечеще! Все работает как надо!
Так на будущее, опиши как надо "правильно" вносить данные в реестр. Вот нашел такую инфу, может дополнишь чем-нибудь, только попонятнее напиши))) Цитата:
|
BlackInferno, советую использовать регшот, он дает готовый файл для имортирования его в скрипт, только потом надо поудалять лишний шум и поменять папки на переменные {app}
|
на чём такое хоть сделать можно?))
|
BloodDick, на ассемблере точно
|
R.i.m.s.k.y., все-таки решил и в реестр внести информацию пусть будет репак грамотным.
Вот у меня образовался такой вот скрипт: Код:
[Registry] |
BlackInferno, нед
заменить C:\Program Files\WCS Real 2003\ на {app}, угадай зачем Флаг uninsdeletekey, но пользуйся им осторожно, прочитай почему |
Цитата:
Цитата:
Вообщем у меня скрипт секции реестра получился вот таким: Код:
[Registry] Как ее исправить? |
BlackInferno, как говорил Весемир: "Бенджи тежко"
1. Ты зачем все поменял на {app}? 1.1. нет, {app} это папка установки, если у тебя в Files все кидается в {app} то и в реестре соответсвенно надо прописывать {app} 2. реестр и файл разные вещи, если с собачьим проблемы в шапке русская справка, флаги для секции [Files] не подходят для [Registry] 3. Ошибка потому что поменял бинарные значения на строковые. Я ж сказал только одно значение поменять, и на твой вопрос "менять ли все?" ответил "нет" |
Понятно. Вроде сейчас компиляция иден нормально.
Код вот такой, заменил в нем только то, что ты и сказал "заменить C:\Program Files\WCS Real 2003\ на {app}". Вот что получилось: Цитата:
|
Цитата:
Про осторожность выше ты угадал причину - чтобы не смахнуть вендовые ветки |
ребята подскажите мне, как сделать следующее
при удалении запускается приложение как сделать так что если в том приложении нажали на отмена, тут тоже отменилась удаление? |
BlackInferno, R.i.m.s.k.y., ну и зачем городить такой огород? Запихивать в инсталлятор дистрибутив, распаковывать его в папку установки и только потом, оттуда, запускать? Не проще ли (да и быстрее по времени) расположить папку с дистрибутивом рядом с Setup.exe и запускать оттуда, не копируя файлы в {app}? Тогда и в директории установки не будут создаваться файлы дистрибутива. И ещё, обычно дополнительный софт располагают не на странице выбора компонентов, а на странице дополнительных задач.
Папку Redist с вложенной в неё папкой DirectX располагаешь рядом с Setup.exe в папке Output по умолчанию. Ну и соответственно потом на диске установки (если будет создаваться) должна находиться папка Redist. |
Цитата:
Цитата:
Цитата:
|
nik1967, некоторые уникумы удаляют лишнее лежащее в {src}, так что внутри инсталлера дирекс не помешает
BlackInferno, выдитрать правильно надо через регшот: 1. запустить регшот и сделать первый снимок 2. запустить оригинальный дистр игры и ничего параллельно не делать 3. сделать второй снимок 4. поудалять лишнее и импортировать в скрипт Но если ты точно знаешь ключ реестра можно и так HKLM\SOFTWARE\Codemasters это не вендовый ключ Да, должно выглядеть так |
Ясно.
А "Flags: uninsdeletekey" ставить только на первую строку? Потом, при удалении, точно удалится вся информация по игре из реестра? |
R.i.m.s.k.y., ну да, ну да, если доп.софт весит более 100 мб., то утяжелять инсталлятор как то не кошерно. Но это, как говориться, моё ИМХО (да и не только моё).
|
R.i.m.s.k.y.,
на тему "во время установки" пример South может кому пригодится :) Цитата:
|
BlackInferno, точно-точно удалится, это же корневой ключ (сколько раз я уже написал это слово :) )
ну если хочешь чтобы наверняка все удалилось сделай Format d: :) |
R.i.m.s.k.y., ну вот, пожалуй это все... большое спасибо за помошь!
|
BlackInferno, большое пожалуйста за вопросы!
Ты кричи если что :) Johny777, а что это на тему "во время установки" пример South ? |
BlackInferno, советую присмотреться к моему посту. По правилам хорошего тона дополнительный софт обычно располагают отдельно от инсталлятора (в репаках). Поверь моему опыту :) .
|
nik1967, очень умно давать цынк на ресур требующий регистрацию
Там написано что репаки надо делать с регшотом и без наворотов чтобы поставилось безо всяких "out of bounds? |
Цитата:
Ещё например в Код:
Root: HKLM; SubKey: SOFTWARE\Codemasters\World Championship Snooker 2003; ValueType: string; Flags: uninsdeletekey Код:
Root: HKLM; SubKey: SOFTWARE\Codemasters\World Championship Snooker 2003; ValueType: string; Flags: uninsdeletekey; Components: a Цитата:
|
Devils Night BlackInferno, ISToolом хорошо править массово флаги, ну и для простеньки скриптов, как только лезешь в секцию кода сразу приходится переключаться на расширенный компилятор
|
Цитата:
Цитата:
А впрочем, я никому ничего не навязываю. Пусть будет, так, как будет. Пардон за :off: |
Цитата:
|
R.i.m.s.k.y.,
Да там пацан спрашивал как во время установки музыку проиграть, потом закрыть инсталл. Я к тому что можно без ассемблера во время установки без всяких таймеров и считываний позиций прогресбара выполнять определённые действия. А способ при извлечении такого-то файла и действий после этого даёт доступ к определённым возможностям. |
BlackInferno, в секция [Files] и [Run] тоже Components поменять на Tasks
|
Цитата:
Цитата:
Кстати, о коде, можно ли привязать к какому либо отдельному куску кода компонент например Components: a? И ещё, возможно ли в секции [Setup], привязать к некоторым строкам Components: a, а точнее вот это: Код:
[Setup] |
Цитата:
|
Цитата:
. |
Цитата:
|
BlackInferno,
Настоятельно советую прочитать русскую справку http://sendfile.su/570136 (все секции!) |
Цитата:
Вообщем все получилось, но И вот еще вопрос: Как сделать так, чтобы на странице "Дополнительных задач" была написана дополнительная строчка: "Установка дополнительного ПО:", а потом уже шли мои компоненты? Точно так же как "Дополнительные значки:" и два флажка - у меня чуть ниже "Дополнительное ПО:" и два флажка. А то как-то не очень красиво получается: |
BlackInferno, да, таск на этот флаг должен ругнуться
давай свой код Devils Night, nik1967, цимес в секции [Setup], это основная секция установщика для создания инсталлера, так что Components к ней применить нельзя |
|
Цитата:
|
|
Цитата:
P.S Я жеж не зря за него заикнулся, а теперь 100 вопросов получайте! nik1967, Johny777, Спасибо! По коду всё сложно, короче ладу не дам, хотел компонент прикрутить к #define, т.е Код:
#define code; Components: a |
nik1967, вылазит галочка перед ПО:
Как ее убрать? Вот скрипт: Код:
[Tasks] Цитата:
|
BlackInferno,
у тебя же перед носом ответ в двух строчках выше Код:
[Tasks] |
Попробую так:
Код:
[Tasks] |
Цитата:
|
Цитата:
видна при наличии дочерних и родительстких компонентов, у тебя их нет и линии тоже нет checkablealone позволяет выбирать дочерний флажок без выбора родительского, справка рулит |
Все, супер, наконец-то все отлично!
Всем спасибо за помощь! |
Вопрос
у меня на странице 6 чекбоксов как блокировать кнопку "далее" если ни один не отмечен? WizardForm.SelectDirPage.OnChange разве есть? |
Johny777, через NextButtonClick не пройдет?
Код:
function NextButtonClick(CurPageID:integer): Boolean; WizardForm.NextButton.Enabled:= False else WizardForm.NextButton.Enabled:= True; вот к примеру у меня на списке компонентов: Код:
procedure ComponentOnClick(Sender: TObject); |
R.i.m.s.k.y.,
сделал так Код:
procedure Enable(Sender: TObject); Тк например ep2_SAVE_CheckBox.Checked всё равно что True, как и все остальные кнопка далее упорно не хотела блокироваться в InitializeWizard, зато так работает: Код:
procedure CurPageChanged(CurPageID: Integer); |
Johny777, у тебя самолепные чекбоксы? я про них не знай, звиняй
|
Подскажите пожалуйста
после копирования идёт сжатие в самоизвлекающийся 7Zip.exe столкнулся с проблемой добавления текста из WizardForm.DirEdit (констант) Т.е. батник должен паковать файлы из папки {app} в архив saved.exe Это всё (код сверху, вложенный архив снизу) работает, но стоит мне начать добавлять '7za a -sfx7z.sfx'+ExpandConstant('{app}')+ '-mx9 C:\saved', то результат - ошибка параметров при запуске батника! :) http://sendfile.su/585755 - архив со всем необходим В общем дальше не знаю! Есть у кого мысли? Возможность паковать в sfx архив нужна в бэкапе для того чтобы в основном инсталле (посредством чекбокса например) восстановить все сохранения и достижения! :) |
Johny777, не качая архив вижу что в '7za a -sfx7z.sfx' нет концевых пробелов, т.е. у тебя получается в батнике 7za a -sfx7z.sfxС:\Program Files\Proga
Но даже если добавишь пробелы '_7za a -sfx7z.sfx_' все равно будет ошибка - батник длинные пути с пробелами не понимает, если есть русские буквы в пути батник должен быть CP866, а инно пишет CP1251. Так что с русскими буквами даже не пытайся, переводи все в секцию кода В общем вотттаг ' 7za a -sfx7z.sfx '+AddQuotes(ExpandConstant('{app}')) сделай, будет ошибка - покажешь ошибку И в конце батника добавь pause чтобы видеть что он пишет Кстати никогда не понимал батников в инно, нем же есть секция кода! |
отказался от батника!
вот перенёс так работает :) так нет :( может с пробелами накосячил? |
Johny777, ты вообще неправильно делаешь
1. Зачем ты переменные взял в кавыки? архиватору ты вместо путей передаешь переменные 2. пробелы Код:
procedure CurStepChanged(CurStep: TSetupStep); |
R.i.m.s.k.y.,
извиняюсь не подумал за основу взял "создание ярлыка" Теперь всё супер! Буду знать Касательно сжатия Стоит ли предоставлять пользовател возможность выбирать уровень сжатия на данный момент стоит -m9, при котором 60мб ужались до 600кб у меня 4 гига оперативы. У кого-то может быть меньше и этот параметр не будет работать. Как лучше? Может сделать среднее сжатие и не мучиться? |
Johny777, мне тут подсказали недавно хороший принцип KISS :)
делай простейшее сжатие, это быстро, рамы мало занимает, инсталлер не примерзает |
R.i.m.s.k.y.,
а как прицепить название архива "saved.exe"? (что то у меня с грамматикой совсем не лады) так не получается (закомментировано) без s4 сохраняет куда надо, но без названия. Например в диск C - .exe, а на рабочий стол - Desktop.exe :( вот полный код (пришлось создать 2 эдита, тк 7Zip не умеет удалять после архивации сжимаемые файлы) последняя версия http://sendfile.su/586087 |
Johny777, вот ты чудак-человек, тёдиты умеешь страяпать а грамматику не знаешь :tongue:
я строго наоборот 1. у меня тут инно не стоит я не знаю как работает AddBackslash, в начало она добавлет \ или в конец 1.1 есть обратная функция, по памяти RemoveBackSlashUntilRoot, в справке глянь точно 2. предположу простое Exec(ExpandConstant('{tmp}\7za.exe'), s1 + ' ' + s2 ' ' + s3 + +' saved.exe', ExpandConstant('{tmp}'), SW_SHOW, ewWaitUntilTerminated, Res); 3. Не знаю что у тебя там в переменных но учти что кавычки AddQuotes нужны на полный путь вместе с именем файла, в середине строки их быть не должно 7z.exe "это запаковать" "вот сюда" параметры 4. мх9 это макс сжатие, долго, рамы жрет 1700метров (если склероз не изменяет), ставь mx1 Код:
procedure CurStepChanged(CurStep: TSetupStep); |
Цитата:
7za a -sfx7z.sfx C:\saved.exe -mx9 C:\saved расширю строку: 7za a -sfx7z.sfx -mx9.......C:\saved.exe.............C:\saved ........параметры...............куда\во что...............откуда (файлы,папки) в инно Exec(ExpandConstant('{tmp}\7za.exe'), s1 + ' ' + s2 + ' ' + s3, ExpandConstant('{tmp}'), SW_SHOW, ewWaitUntilTerminated, Res); расширю для чтения: Exec(ExpandConstant('{tmp}\7za.exe'),......s1.............................................s2........ .......................................................s3.................................ExpandCons tant('{tmp}'), SW_SHOW, ewWaitUntilTerminated, Res); .......................................запустить.......параметры...........текст другого эдита(куда архив).................{tmp}\saved (отсюда файлы)...... те логика такая если отмечен чекбоск "создать архив", то родной Dir.Edit блокируется и всё папки/фалы бэкапа из секции [Files] копируются в папку {tmp}\saved получаем s3 := Addquotes(ExpandConstant('{tmp}\saved')) ......... (откуда) s2 := Addquotes(Zip_Path_Edit.Text); ......(куда). Например на рабочий стол (уже архив.exe) s1 := 'a -sfx7z.sfx -mx9';.............(параметры) Не меняется Трогать s3 нельзя. Файлам прямая дорога только в папку темпа, которая после успешной установки удалится. s1 - параметры Т.е. всё крутится вокруг s2, который может быть любым путём + название архива на данный момент только это получается (пример из строки в начале) вместо C:\saved.exe --получаем-- C:\.exe те вместо saved.exe --получаем-- .exe так тоже не получается s2 := Addquotes(RemoveBackslashUnlessRoot(Zip_Path_Edit.Text)+'saved.exe'; и так s2 := Addquotes(RemoveBackslashUnlessRoot(Zip_Path_Edit.Text)+'\saved.exe'; проблема с \во что Цитата:
вот RemoveBackslashUnlessRoot Цитата:
( в планах есть комбобокс с выботом "среднее(), лёгкое(mx1), сильное (много меньше mx9)" ) |
Johny777, не получается? добавь в конец MSGBOX (твоя проблемная строка)
вслепую сложно догадываться, надо хрустальный шар полировать |
R.i.m.s.k.y.,
истина где-то рядом вот почти заработало при s2 := Addquotes(RemoveBackslashUnlessRoot(Zip_Path_Edit.Text)+'\saved.exe'); в пути где в конце нет обратного слэша \ всё в порядке C:\test в пути, где в конце он есть C:\ архив не создаётся Насчёт месседжбокса даже не знаю куда его прикрутить ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, очень интересные результаты сжатия думаю оставлю выбор на mx3 и mx5, ведь лишних 200 метров оперативки найдёт каждый! |
Johny777, MsgBox('тут кроется лажа' + #13#10 + ExpandConstant('{tmp}\7za.exe'), s1 + ' ' + s2 + ' ' + s3, mbInformation, MB_OK);
Код:
procedure CurStepChanged(CurStep: TSetupStep); |
R.i.m.s.k.y.,
сделал (месседж бокс, упростил и изменил немного логику) и без меммедж бокса понятно в чём проблема Вот две строки. При той что не закоментирована всё отлично if not (FileCopy(ExpandConstant('{tmp}\saved.exe'), ExpandConstant('{userdesktop}\saved.exe'), True)) then //if not (FileCopy(ExpandConstant('{tmp}\saved.exe'), 'C:\saved.exe', True)) then MsgBox('Обломись!', mbInformation, MB_OK); целиком при той что закоментирована появляется сообщение бред какой-то http://sendfile.su/586233 |
Johny777, балин, камрад, я дал тебе готовую строчку чтобы увидеть что ты там склеиваешь, нафига мне твое обломись?
|
R.i.m.s.k.y.,
Ты "секретные материалы" (Малдеры, Скали всякие) смотрел? вот две строки if not (FileCopy(ExpandConstant('{tmp}\saved.exe'), ExpandConstant('{userdesktop}\saved.exe'), True)) then //if not (FileCopy(ExpandConstant('{tmp}\saved.exe'),'C:\saved.exe', True)) then при первой архив копируется на рабочий стол, а при второй в C:\ нет (констант нет. Прямой путь) Как это понимать? Самое натуральная аномалия. Скрипт живёт своей жизнью! :) Касательно твоего месседж бокса.Хотел с ним потестить. С ошибкой синтаксиса вылетает (исправить не смог). Пока что тупик как не крути. |
Johny777,
тебя ничего не смущает? Код:
procedure CurStepChanged(CurStep: TSetupStep); Код:
procedure copy1file(fromfile, tofile:string); |
R.i.m.s.k.y.,
спасибо за помощь добрый человек! всё работает: сохраняет куда надо и как надо |
Цитата:
Выпей за мое богатство! :) |
Цитата:
Код:
procedure CurStepChanged(CurStep: TSetupStep); |
El Sanchez Johny777, смутило но я подумал что это особенность msgbox
Спасибо что сказал, переделаю и у себя (хотя никто не жалился еще) Проще сделать AddQuotes2, а то об эти кавыки в Ехес глаза пообломаешь Код:
function AddQuotes2(www : string) : string; |
|
Цитата:
|
Цитата:
El Sanchez, спасибо, что пришёл и поправил! ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, у меня вопрос с архивацией всё отлично Вот код на сами сохранения (поиск по расширению в отдельных папках и сравнения размеров файлов - всё работает), но меня смущает, то что без этого инсталл не запускается Код:
function InitializeSetup(): Boolean; Скажите пожалуйста где я опять накосячил при укорачивании и адаптации под свои нужды "поиск по расширению" их шапки? или архив с файлами http://sendfile.su/586804 |
Johny777,
1. либо ставь Тру либо удали блок Код:
2. Никак, в твоем архиве много мелких файлов, пока все переберет... Но вот почему тупит когда файлов нет так это потому что у тебя цикл for i:= 0 to GetArrayLength(ArrayOfMask)-1 гоняется вхолостую добавь перед ним условие "если есть твои папки тогда уже искать" Он вообще у тебя коряво сделан, зачем ты в цикле перебираешь когда достаточно и без цикла просто Код:
StartFolder:= ExpandConstant('{src}\..\common\half-life 2\hl2\SAVE'); // задаём папку откуда начинать поиск |
Цитата:
|
Johny777, ну тогда сжимай получше, у меня канал тонкий :)
|
R.i.m.s.k.y.,
будет прохладным летним вечером! :) |
Всем привет,меня долго здесь не было по этому не знаю,выходили ли какие то новые версии iswin7 и isdone?
|
insombia, нет.
|
намутил пример (под свои нужды, но думаю кому-то пригодится :))
имеем чекбокс отвечающий за установку например директа. Если во внешней папке директ есть, то он (чекбокс) активен. В противном случае не активен Но тут проблема. Что если инсталл на диске, а директа рядом нет? тогда добавляется кнопка "показать" Указываем и если по указанному пути директ есть, то пути передаются директории "откуда ставить" и "рабочей папке" |
Цитата:
|
El Sanchez,
Спасибо за исправления! Стало ещё проще и удобнее. Цитата:
В скрипте халфы всё это выполняется на шаге ssPostInstall вот так (пока ещё поиск директа и прочего не добавлял) где FilesMemo это мемо со списоком извлекаемых файлов на странице установки |
ребятушки подскажите пожалуйста как правильно текстурировать кнопку отмена на деинсталяторе
|
wertulll,
попробуй так (по двум секциям раскидай) Код:
[Files] |
Johny777,
ошибка при удалении |
wertulll,
там ведь кнопка только заблокирована? если да, то не проще ли просто создать картинку, а кнопку скрыть? |
Интересует такой вопрос — какие константы путей использовать, чтобы инсталлятор находил определенный файл или директорию у пользователя, и устанавливал туда нужные файлы?
Нужно для русификатора. Часто кстати видел, когда инсталлятор (русификатор или патч, к примеру) указывал путь, который я сам ранее назначал, ну или к примеру диск с этими файлами. |
bear!, файлы русификации не просто, а вот если русификаторы засунуто в инсталлятор PatchWise Free; то смогу положить код.
|
Ну в смысле не просто? Эверест что ли покорить нужно. Видел я подобное и на Inno Setup.
Это все ради удобства, пользователь и сам может указать директорию, куда нужно установить, но просто так эффектней и удобней наверное. Поэтому если есть возможность рассказать подробней об этом, то было бы отлично. |
Johny777, последовал вашему совету :yes:
|
подскажите код для отображения этого
|
Цитата:
а вот с процентами и оставшимся временем дела обстоят хорошо! сделал так что ты можешь стереть проценты и оставить только время установки немного изменил сами "проценты" (скопипастил создание лейбла у того же примера с которым совмещал :)) 1. пример процентов из InnoSetup FAQ 2. "оставшееся время" - это пример ProgressBar + TimeLeft v2 by South.Tver (....\Inno Setup 5\Modules\South\botva2_example\progressbar+TimeLeft.iss), но без ботвы *(перед тем как выложить проверил) архив с библиотеками |
Johny777, спасибо !!!решил вопрос через ISDone :)
|
Такой вопрос: насчёт #define AppID, я что-то пробовал вставить AppId={{D8E8ADA9-2E6C-49E7-924B-A32B89C23A24} вместо AppId=TheBestAppIdEverMade, компилится нормально, но выдаёт ошибку: Exception Internal error: Failed to pause "reg" constant, где грабли?
Вообще расчитываю на #define AppID "{D8E8ADA9-2E6C-49E7-924B-A32B89C23A24}" В общем вот: P.S Компилится нормально, но инсталлятор не запускается. |
Devils Night, при раскрытии константы {#SetupSetting("AppID")} значение завершается фигурной скобкой и компилятор считает, что константа {reg} завершена на этой скобке и синтаксис рушится. Экранируй как в справке сказано:
Код:
[Setup] |
Цитата:
|
Devils Night, спасибо, ясно. Замена закрывающей фигурной скобки для препроцессорных констант на какой-нибудь другой символ ничего не дал, режим С-style препроцессора тоже. Придется использовать RegQueryStringValue.
|
El Sanchez, Если без вариантов с тем кодом, то может есть ещё какой вариант? Размер окна не имеет значения, и не обязательно чтоб был маленький, можно и стандарт.
В общем код в три кнопки, такого содержания: Задача: Добавить ещё одну кнопку Изменить. Может посоветуешь какой ещё вариант? |
Цитата:
Код:
AppPath := RemoveQuotes(ExpandConstant('{reg:HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{#SetupSetting("AppID")}_is1,InstallLocation|}')); Код:
if RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{#SetupSetting("AppID")}_is1', 'InstallLocation', AppPath) then Цитата:
|
|
El Sanchez, Спасибо! Всё получилось как надо , вот что вышло:
|
Цитата:
Цитата:
|
wertulll, если хочешь вот такой инсталлятор, найди "главного врача" (setup.exe <-> install.exe), распакуй сторонним программом (Universal Extractor) и там найдешь реальный скрипт install_script.iss.
|
Цитата:
|
Цитата:
wertulll я ж выложил 2 страницы назад код, где только не хватает прошедшего времени уверен его реализовать не сложно в отличии от процентов и оставшегося времени используй его в шапке есть отображение размера файла ещё можно мемо добавить со списком извлекаемых файлов будет лучше чем на скрине |
доброе время суток.короче.я хочу сделать установочник игры,а игра сама весить 1.5 гб.так вот,как сделать так чтобы был .exe и сама игра и доп софт в .bin файлах
|
habib2302, да точно так же как и саму прогу
примеров в шапке тьма |
Цитата:
|
habib2302, если с Инно на "вы и шепотом" - используй InnoIDE
|
Цитата:
|
habib2302, ептыть, тебе разделить? тогда freearc
я с ним не работаю |
habib2302, раз хочешь проБИНичить, галочи "Использовать загрузчик". А потом разбирайся.
Эх, если было бы влепено в шапке "Как разделить гиговые файлы на BIN", то я бы кричал на ура! |
Цитата:
поподробнее скажи! |
Johny777, каждые репакеры перепаковывают 6 гиговую папку на каждые 2 Гб (включая опцию "Загрузчик") типа: setup-1.bin, setup-2.bin, setup-3.bin и т.д. А setup.exe это просто генерация скриптов и распаковки файлов. Вот просто бы захотелось вписывать шапку для новичков.
|
Цитата:
DiskSpanning=true DiskSliceSize=2000000 Этого я думаю хватит. |
Devils Night, я так понял что ему нужно чтобы игра была в одних бинах, а допсофт - в других
Это уже через исдоне/фриарк |
Цитата:
|
Цитата:
я понял экзешник, и .bin файлы доп софт извлекается вместе с игрой (только непонятно куда. В темп или в директорию установки. Если последнее, то должен ли он удалиться после установки) и устанавливается оттуда как в лиц играх для стима. Там тоже доп. -е лежит вместе с игрой и перед первым запуском устанавливается из директории установки Это не сложно даже в код лезть не надо в Files(папке/файлу) и в RUN присвоить одну и туже задачу или компонент и папке в Files с тем же директом приписать (опционально) флаг deleteafterinstall :) |
Парни, подскажите:
Если выбрана компонента, хочу добавить только ключ в реестр (HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\TdrLevel DWORD 0 ) - больше ничего. Как это реализовать? |
leshcat,
ты можешь присваивать строке в любой секции (кроме секций [Types] [CustomMessages] [Messages] [Setup]) компонент, язык и задачу или всё сразу при активном английском задача или секция файлов или та же строка для записи в реестр не будет задействована если ей/им присвоен ... ;Language: russian прмер-ответ к твоему вопросу |
Johny777,
Как всегда, все гениальное - просто. Большое вам спасибо за оперативность :) |
|
Цитата:
|
Цитата:
|
А надо ли ? Из за пары вопросов по пережатию?
|
Как сделать,чтобы в этом окне вместо времени просто было написано установка... :unsure:
|
Ivan_009, скриншот полностью, таймеры наляпано в секции кода.
|
Возможно ли вместо точки поставить {app} :unsure:
|
Цитата:
Цитата:
|
Так: ValueData: {.}\frontline.mbcfg{break}{break}; :drug:
|
Ivan_009, а так: ValueData: ".\frontline.mbcfg" не катит?
Стоп. Цитата:
"{app}\frontline.mbcfg" |
Я перепаковать хочу программу, и чтобы ее файлы находились в установщике.exe а по умолчанию они в Bin файл суются и лежат рядом.
|
bugmenotagain,
тогда [Setup] DiskSpanning=false и тебе придётся уместить всю свою программу в 2 гига |
Johny777, программа весит ~10мегабайт. пожать до 2 мегабайт.
|
Inno*Setup*Preprocessor
Please*specify*whether*Inno*Setup*Preprocessor*should*be*used. (ISPP)*and*can*therefore*use*#define*compiler*directives*to*simplify*your*script.* Although*this*is*not*necessary,*it*will*make*it*easier*to*manually*change*the*script*later. Do*you*want*the*Inno*Setup*Script*Wizard*to*use*#define*compiler*directives? Yes,*use*#define*compiler*directives оставить галочку или убрать? |
|
Johny777, к чему вы сказали что 2 гига будет весить программа? кстати, раньше файл bin создавался. а теперь все в exe. Я ничего не менял в настройках.
где можно найти подробный мануал где показано, как изменить фон в установщике, ассоциацию файлов сделать, описание изменить, кнопки, чекбоксы на одну страницу поместить. еще слышал из реестра надо откапывать ключ. Я начинающий AppVersion как оставить пустым? |
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
|
Цитата:
Я могу кому нибудь позадавать глупые вопросы в личку? тут не удобно |
Цитата:
для этого я дал тебе настройку, но с этой настройкой размер инсталла-экзешника в сжатом виде не должен превышать двух гигов, иначе вылетит с ошибкой при компиляции откуда ж я должен был знать, что твоя программа всего 10 метров? Вот и предупредил заранее |
Johny777, там автоматом ставится в exe. а если будет 20 гигов она разделится на составные части?
|
bugmenotagain,
почему бы тебе не прочитать русскую справку http://sendfile.su/570136 |
ну хорошо. а как создать отдельную страницу и там поставить радиофлажек установка / распаковка. в установщике лежит еще и portable версия
|
Цитата:
скачай расширенную версию инно http://forum.oszone.net/showthread.p...99#post1201499 и установи ANSI версию добавь страницу вот таким макаром Цитата:
насчёт того, что должно происходить и когда если он (чекбокс) отмечен нужен с твоей строны самый конкретный вопрос на основе предоставленного тобой скрипта или куска кода тк "установка / распаковка" звучит немного размыто А на уроках телепатии я на последней парте в морской бой играл :) |
что такое изменения Enviroment в Inno Script Generator
Цитата:
Цитата:
если позиция флага на "Распаковать" - то распаковывается обыкновенная portable без всяких изменений в реестре. а где взять картинки перепаковынной мной программы? именно в bmp. |
Цитата:
зачем страница? ведь лезть в код прийдётся реализуй через компоненты Цитата:
в интернете гугл тебе поможет а в фотошопе в 32 битном бмп сохраняешь или в пэинте (не советую) в 24 битном Цитата:
|
вот такого вида хочу добиться
|
|
Johny777, ищу то не знаю что. вы сказали что через компоненты, но на скрине нет компонентов. радиопереключатели.
|
Здравствуйте! Прошу пожалуйста сделайте мне распаковку архивов в зависимости от выбранных компонентов.Очень прошу!Заранее всем благодарен.Вот архив http://rghost.ru/download/38069694/a...0Space%202.rar
|
Цитата:
|
как изменить иконку и названия утилиты удаления?
обязательно ключи реестра куда то сохранять? |
|
ChangesAssociations для ассоциаций и удаления их, верно?
Цитата:
|
bugmenotagain,
UninstallIconFile=твояиконка.ico |
Цитата:
Читай справку, ChangesAssociations говорит винде обновить ассоциации файлов |
для чего нужны ключи из реестра? Я без них все сделал и программа устанавливается и работает.
|
bugmenotagain, а) для самой программы чтобы могла находить допкомпоненты б) для патчей
Ключи жрать не просят - делай, ты ж не автор чтобы рассуждать "нужно / не нужно" |
R.i.m.s.k.y.,
Цитата:
|
Цитата:
2. упор на оформление, нет бы вместо свистулек добавить проверку уже установленных версий компонентов, заместо этого ставят не спросясь и не разобравшись, к примеру, vcredist 3. не ждите от меня ответов про формы, я с ними на "Вы и шепотом" :) |
R.i.m.s.k.y., и какой же лучший установшик? nsis? у него нет ни примеров ни чего. все руками надо прописывать. в каше пути прописывать
|
bugmenotagain, из совсем простых есть smart installer
Но любую прогу делает коммунити Если хочешь на инно начать - попробуй с InnoIde, у него всякие упрощалки есть |
R.i.m.s.k.y., nsis самый лучший же кричат.
мне все равно не понятно. в справках пишут заумно. и вообще то что мне нужно найти не могу. хотя бы сделать простой выбор установить программу / распаковать portable как делают сейчас многие известные репакеры. весь вечер и сегодня полдня убил. |
bugmenotagain, холивар детектед?
к чему душа лежит тем и пользуйся, как я уже сказал Цитата:
1. за правку сообщений после ответа на него нужно закармливать конфетами пока злодей не окочурится от инсульта :) 2. ну дык спрашивай чего непонятно, только конкретнее, общие вопросы "как сделать репаг" имею ровно один ответ "берешь и делаешь" Самый лучший вопрос вида: вот скрипт, делаю так получается вот такая ошибка Твоя прошлая картинка с раром делается через Components, только значка рядом не будет (или будет но это уже задача со звездочкой) |
Цитата:
http://forum.oszone.net/post-1915386-1915.html А? ты мимо прошёл и даже не глянул! там концепт того, что ты хочешь с твоего скрина делал разбери его пойми Цитата:
они все хороши по своему :) |
bugmenotagain, сколько постов и вопросов написали.
Зачем написать столько простых и "чайничных" вопросов? Бери учебник по руководству Inno Setup и учи. Каждый RePack'ер должен знать как бы язык программирования, а раз ты несколько скриптов делаешь без ошибок, продолжай в том же духе. |
Цитата:
|
Привет всем !!!
подскажите скрипт для добавления музыки , и как изменить размер инсталятора ? |
MeХanik, размер инсталлятора - в расширенном Inno Setup. А музыка - в Inno Setup GameScript Generator.
|
после установки программы через ее оригинальный установщик, при первом запуске программы открывается окно About. как мне также сделать в своем установщике?
|
Скажите как сделать чтобы при установке файлы извлекались из архива .arc
Объясните что куда прописывать? |
|
Цитата:
|
чекбокс как сделать который в программе русский язык выставит? (WinDjView)
|
bugmenotagain, создаешь TNewCheckBox и булевую функцию, которая даст ответ в зависимости от состояния чекбокса. а проще - создай компонент или задачу - в InnoIDE - как два пальца - нужно совсем уж ленивым быть, чтоб не справиться.
|
|
Цитата:
И да, про IsTool - начиная с версии Inno 5.3.9, вроде, она уже частично не соответствует сабжу, так сказать. Есть более актуальные IDE - InnoIDE от Graham Murt и Inno Script Studio от Kymoto Solutions. с русиками там тоже нет нужды помогать - Kymoto пошел навстречу и внедрил русик в дистрибутив, а Graham Murt прекратил работу над InnoIDE, что печально, конечно, но русик к последней версии так-же нет нужды по десять раз выкладывать |
|
Цитата:
|
Цитата:
|
очень логично - заглядываешь в папку с инно и видишь там очень логично названную папку Languages, в ней файлы с расширением *.lng - это и есть подключаемые файлы сообщений. очень удобно редактировать их с помощью самой Inno Setup или Notepad++
|
|
bugmenotagain, убрать эти цифры из названия программы.
|
Цитата:
|
bugmenotagain
Цитата:
Первая часть правильная, в файле russian.lng ищем нужный текст и подсматриваем имя переменной, а потом в инно в секции [Messages] переопределяем ее Код:
[Messages] |
|
Всем доброго времени суток! Использую скрипт c определением свободного/необходимого места на диске:
Все работает, но не знаю что делать с этим: Как убрать нули? |
bugmenotagain,
1. lng не появляется или нету? Учись правильно подставлять в предложения слова в соответствии со значением, принятым в данной местности 2. тебе нужен russian.ISL, ну а дальше как написано выше, ищешь свой текст и переопределяешь его в секции [Messages] Sotonisto, еще бы кусок кода который рисует эти нули и необходимое место, так непонятно (мне по крайней мере) |
R.i.m.s.k.y., мне править где? в ing или isl ?
|
bugmenotagain, перечитай еще раз что я написал
смотришь в isl и пишешь в Messages Конкретно твой случай Код:
[Messages] |
R.i.m.s.k.y., спасибо. там банально просто. тире не заметил сразу.
а что с версиями? выше картинки привел Цитата:
Код:
[Messages] |
Цитата:
Или еще хужей, исправишь файл, забудешь и эти исправления пойдут в следующий проект |
Цитата:
|
R.i.m.s.k.y., это скрипт инсталлятора CoD:BO (не помню откуда скачал). Вот все файлы, которые используются.
|
Sotonisto, на юникоде компилишь?
|
Здравствуйте! Долго пытался найти ответ на свои вопросы, но, к сожалению, мне это не удалось, а посему пишу здесь.
Имеются два портабельных фоошопа (64/32бит). Вот мой скрипт Задача: 1. Установка без вывода любых окон, кроме полоски процесса распаковки. 2. Автоматическое определение битности системы, и, соответственно, установка нужного. Заранее благодарю. |
91892823, Так, может?
|
Лександер, без понятия, но вроде бы да :) Если это имеет большое значение - могу установить Ansi.
P.S.: А в чем разница между Unicode и Ansi версиями? |
91892823, И ещё, если уж делаешь портейбл, то в секцию [Setup] добавь строку
Код:
Uninstallable=false Код:
CreateUninstallRegKey=false |
Лександер, 1. Установка без вывода любых окон, кроме полоски процесса распаковки. - задача, можно сказать, выполнена.
А вот строки.. [Files] Source: "C:\Program Files\Adobe Photoshop CS6 (x32)\*"; DestDir: {app}; Flags: ignoreversion; Check: not IsWin64 Source: "C:\Program Files\Adobe Photoshop CS6 (x64)\*"; DestDir: {app}; Flags: ignoreversion; Check: IsWin64 не подходят, потому что во время компиляции распознается битность (у меня 32) и 64 не компилируется в инталлятор.. Вроде так.. И подкаталоги (C:\Program Files\Adobe Photoshop CS6 (x32)\App" и "C:\Program Files\Adobe Photoshop CS6 (x64)\App") тоже не компилируются.. |
Цитата:
1. ты уверен что для 32 битной находится в C:\Program Files\Adobe Photoshop CS6 (x32) а для 64 битной в C:\Program Files\Adobe Photoshop CS6 (x64)? 2. Может лучше засунуть скрипт для надёжности непосредственно в Program Files, и изменить пути на такие: Код:
Source: Adobe Photoshop CS6 (x32)\*; DestDir: {app}; Flags: ignoreversion; Check: not IsWin64 Да и учти, при установке у тебя распакуется только для 32 бита. Для проверки, мол запаковались ли файлы для 32 бита и/или для 64 бита, сначала скомпиль как есть, переименуй инсталл, а потом по очереди закомментируй по строке, сначала 32 Код:
[Files] Код:
[Files] |
Devils Night,
1. ты уверен что для 32 битной находится в C:\Program Files\Adobe Photoshop CS6 (x32) а для 64 битной в C:\Program Files\Adobe Photoshop CS6 (x64)? - Да, это точно. 2. Может лучше засунуть скрипт для надёжности непосредственно в Program Files, и изменить пути на такие: - Так и сделал, но результат тот же - 64х(520 мб) и 32х(470 мб) в итог компилируются лишь ехешники.. При установке вроде все норм, выбирается нужный. Быть может, проблема в том, что директория App и там, и там? |
Флаги добавь Flags: recursesubdirs createallsubdirs
;recursesubdirs - Обрабатывать подкаталоги ;createallsubdirs - Создавать все подкаталоги т.е: Код:
[Files] |
Devils Night, спасибо! Задача выполнена. Спасибо всем, кто помог!
Вот скрипт полностью, вдруг кому-нибудь пригодится. Автоустановка с определением битности системы |
Цитата:
А мне нужно что куда прописывать чтобы файлы извлекались из архива !!! |
|
bugmenotagain, либо не объявлена секция Components, либо в ней нет компонента WinDjView
|
bugmenotagain,
1. попробуй добавить флаги createallsubdirs recursesubdirs 2. тут интереснее, Uninstallable задается только в секции Setup и компоненты к ней не применишь, как вариант удалять удалятор в конце и выносить секцию из реестра |
Цитата:
она же portable. она должна копироваться как обычная папка с обычными файлами. Цитата:
и в меню пуск она суется. мда |
Цитата:
Но может кто-то более красивое решение подскажет |
R.i.m.s.k.y., тогда такой вопрос. как заставить второй компонент (portable) копироваться в указанное место как обычный файл? без всякого реестра, меню пуск и прочее?
|
bugmenotagain, прописать в секции Icons, Registry и прочие правильно и корректно нужным строчкам нужные Components, строчки без Components выполняются всегда
|
R.i.m.s.k.y., не подскажите примерно что прописывать?
|
bugmenotagain, точно так же как и в секции Files, строчка которой была выше
|
R.i.m.s.k.y., про это можно где нибудь почитать?
запутался. |
не понятно
Код:
Source: port\*; DestDir: {app}\port; Код:
Source: "C:\Program Files\WinDjView\*"; DestDir: "{app}"; Цитата:
|
bugmenotagain,
твоя проблема решена в этом сообщении изучай, пользуйся! Цитата:
*(работает как часы :). Проверил!) Код:
[Setup] |
Johny777, да Я понял что это решение. Я уточняю. пути у всех разные. или мне тупо скопировать?
что мне писать вместо Цитата:
|
Как сделать так, чтобы при успешной установке на финишной странице загружалась одна картинка а при ошибке другая.Дело в том, что я использую на каждой странице разную картинку через bmp. Распаковка у меня через ISDone. Подскажите пожалуйста... :dont-know
|
Скажите что куда прописать ,чтобы файл - Game.exe - устанавливался в папку \system
Вот мой инстал : Код:
; Script generated by the Inno Setup Script Wizard. |
|
MeХanik,
Код:
[Files] скрипт покажи, что у тебя там за константа reg |
вот на эту строчку ругается
Код:
AppPath := RemoveQuotes(ExpandConstant('{reg:HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{#SetupSetting("AppID")}_is1,InstallLocation|}')); |
Вложений: 1
Код:
[ Code] |
bugmenotagain, структуру reg: нельзя применять в коде
Код:
[ Code] Вот что точно левое так это секция [UninstallDelete] |
R.i.m.s.k.y.,
у меня пример на предыдущей странице рабочий я проверял добавил другую строку на предыдущей странице |
Johny777, я переписал по рабочему, это раз
дваз - неправильно постоянно вычислять ключи, надо их подсунуть под if (CurStep = ssDone) ============= еще ошибка AppPath имеет на конце \ и ты еще раз приплюсовываешь его же |
Johny777, Я скопировал ваш скрипт. но он не работает
Цитата:
и теперь в назначенную папку вообще ничего не распаковывается. пустая |
bugmenotagain, вот для этого я и поставил MSGBox
смотри пути где ищет удалятор и куда ставишь Согласно твоему коду он ищет в InstallLocation = ... А ты где его ждешь? |
R.i.m.s.k.y.,
Цитата:
|
bugmenotagain,
не путай меня, я сам запутаюсь Папки раскидывал ты итак, что куда копируется? четко, внятно где должен лежать удалятор, куда ставится портабельная и полная версия |
R.i.m.s.k.y.,
Цитата:
ну папку можно естественно изменить. удалятор должен лежать как положено в папке программе. в portable нет никакого удалятора, это просто набор файлов скопировать и все. |
R.i.m.s.k.y.,
приношу свои извинения, тк мой пример состоит на половину из лишнего кода :) только сейчас допёрло, что на шаге ssDone константа {app} ещё существует, а это всё упрощает и укорачивает! Вот: (Проверил. Работает) наглядный пример прилагается в архиве |
Как сделать следующий порядок страниц
1 - приветствие 2 - выбор компонентов 3 - выбор папки установки у меня сейчас 1 - приветствие 2 - выбор папки 3 - выбор компонентов |
bugmenotagain, порядок стандартных окон не изменить
Или перерисовывай их |
Цитата:
|
R.i.m.s.k.y., как другие тогда делают порядок?
nik1967, только code нужен? |
Цитата:
Так я думал пока nik1967 не ответил, хе-хе |
R.i.m.s.k.y., а это сложно свои страницы писать?
|
Это не мой пример. Где то, когда то, у кого то подсмотрел, стыдно признаться не помню у кого, вполне возможно, что и здесь.
|
Цитата:
Но остальные имеют свое мнение на этот счет Вообще все сложно когда не знаешь, когда знаешь - все просто. Для меня к примеру и 1Цэ сложная вещь, потому что нету форума по 1с как по инно :) |
R.i.m.s.k.y., а что лучше свои нарисовать или стандартные изменить?
где можно почитать про это? Цитата:
|
Цитата:
|
|
Цитата:
Цитата:
|
R.i.m.s.k.y.,
у себя тоже давно поменял страницы только проще тк компонентов (секции) нет, то и страницы нет вставил вот таким вот чудесным макаром страничку перед страницей выбора директории установки и создал на ней всё необходимое есть и другой способ через (взял в во вкладке "поддержка" расширенной версии) но я с ним не дружу а работать со своей страницей предельно легко вот на моём примере _______________________________________ касательно смены страниц местами не знаю насчёт других, но логика моя говорит, что разумнее сначала выбирать "что" и потом говорить "куда", а не наоборот |
Как убрать данную область...
|
это, Ваня, так называемая WizardForm.Caption := 'название'
ищи через ctrl + F может быть записано и так: with WizardForm do begin Caption := 'Готово'; ... или в процедуре какой |
Johny777 мне нужно полностью удалить эту область не подскажешь как :dont-know
|
Ivan_009,
ну так WizardForm.Caption := ''; главное кавычки не стирай, а в них ничего не пиши а можно и без кода обойтись вот так [Messages] SetupWindowTitle= |
Не мне надо, чтобы верхушки вообще не было
|
Цитата:
procedure InitializeWizard(); begin WizardForm.BorderIcons := []; ... но тогда и иконка и значки "свенуть", "закрыть" слетят |
Почти :) еще бы полоску докучи верхнию убрать полностью
|
Ivan_009,
ну вот так with WizardForm do begin BorderStyle := bsNone; end; только окно таскать не за что будет ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,, но благодаря Лександру у нас есть чудо-процедура (сам у себя в инсталле использую. Очень удобно!) при желании можно не использовать кусок из InitializeWizard и всем нужным элементам во вкладке "события" дизайнера расширенной версии в событии OnMouseDown присвоить процедуру MouseDown (картинкам, панелям и пр) в окнах (ведь Notebook-ам эту процедуру не присвоить) создать на всю страницу или в определённых участках лейблы с параметрами (параметры выделил жирным) а если этот лейбл будет не давать пользоваться некоторыми элементами (SpeedButton-у например), то их нужно в той же вкладке "дизайн" при щелчке правой кнопкой мыши по ним поднять "на передний план" :) |
Как сделать , чтобы после установки в ярлыке на раб.столе был прописан путь : X:\XXX\Shrek 2\system
Инстал все тот же: Код:
; Script generated by the Inno Setup Script Wizard. |
MeХanik, почитать про абсолютные и относительные пути
Код:
[Icons] |
в реестре ошибка появляется после распаковки. Значит страницы никак нельзя отредактировать? NSIS действительно самый лучший. все страницы там руками пишешь, без всякой черной магии и pascal. |
bugmenotagain, и что из этой куцой картинки мы должны понять?
|
R.i.m.s.k.y., ошибка в реестре. программа CCleaner
|
bugmenotagain,
Телепаты сидят в вопросах и ответах мэйл.ру Из тебя все клещами тянуть надо? покажи скрипт и при каких условиях возникает ошибка |
Код:
#define MyAppName "WinDjView 1.0.3" |
bugmenotagain, ну мало ли
а точно имя удалятора unins000.exe??? так попробуй Код:
#define MyAppName "WinDjView 1.0.3" |
|
ы кавыки забыл
if RegKeyExists(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{{60F3D1CB-B2A7-46E7-92B0-93526131061D}_is1') then MsgBox('ключ в реестре не удален', mbInformation, MB_OK); |
Цитата:
|
я бы делал вот так
Код:
[*Code] Цитата:
Чтобы убрать отладочное сообщение удали строчки с MSGBox |
Код:
Exec('cmd.exe', ' /c rd /S /Q ' + Add_Quotes(Dir),ExpandConstant('{sys}'), SW_Hide,ewWaitUntilTerminated,res); перед Add_Quotes Цитата:
|
bugmenotagain, ты либо используй мой вариант, либо не мой
Я привел вариант как бы сделал я. Ты сам то можешь прочитать чего накопировал? нет? думаешь мы должны? RD рабочий из моего инсталла я забыл добавить Add_Quotes, в башке компилятора то нет Код:
[*Code] |
R.i.m.s.k.y.,
Код:
if RegKeyExists(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{{60F3D1CB-B2A7-46E7-92B0-93526131061D}_is1') |
bugmenotagain,
|
точно. Я не программист, и код pascal для меня как китайский.
Код:
procedure CurStepChanged(CurStep: TSetupStep); |
Цитата:
скажите тут есть темы на другие установщики? inno setup , nsis слишком для программистов, чтоб делать удобные плюшки. а стандартные функции желают лучшего. такой скрипт надо настрочить, чтобы сделать пару жалких чекбокса. |
bugmenotagain, скрой код, слишком большой.
|
Цитата:
Любая программа будет слишком если в ней не разбираться |
Подскажите для чего эта функция нужна ли она в слайдшоу...function GetSystemMetrics(nIndex:Integer):Integer; external 'GetSystemMetrics@user32.dll stdcall'; :search:
|
Цитата:
|
bugmenotagain, Можно и поподробней, но не хочется
про главный файл не понял, где и зачем его выбирать? Цитата:
|
R.i.m.s.k.y у меня и за этой функции ошибка если ее отлючить то все нормально работает :)
|
Ivan_009,
Ну если бы ты хотел чтобы тебе помогли то наверное ты бы показал ошибку или привел ее текст Точно по тексту скрипта нет вызова этой функции? |
R.i.m.s.k.y вот ошибки
|
как изменить страницу компонентов
|
Подскажите как убрать белую область пробовал через SetBounds(ScaleX(79), ScaleY(61), ScaleX(798), ScaleY(620)) не получаеться зараннее спасибо... :search:
|
ну что ж ты Вань
картинку сдвинь или растяни (всего-то несколько пикселей) название_картинки.Width := WizardForm.Width; название_картинки.Stretch := true; |
Johny777 Спасибо... :up
|
bugmenotagain, запуск деинсталлятора портативной установкой на этапе ssDone это, я так понимаю, для того, чтобы не было файлов деинсталлятора и записей в реестре, т.е. превращаем обычную установку в обычную. Вся эта стройная схема рушится по нескольким причинам: портативная установка в одну папку поверх обычной перепишет/добавит файлы от обычной установки, что есть нехорошо; портативная установка в одну папку поверх обычной на этапе ssDone своим вызовом деинсталлятора вынесет вместе с реестровыми записями и файлами деинсталлятора еще и только что распакованные файлы и, возможно, программную папку. Получим либо голое место, либо только файлы, не вошедшие в лог деинсталлятора.
Начните с этого шаблона и почитайте, наконец, справку: |
El Sanchez, а вы можете сказать точно как в установщике сделать распаковку портативной программы? без всякого мусора. справку Я читаю. там нет ничего про портативную распаковку.
El Sanchez, Я думаю надо добавить еще CreateUninstallRegKey. в реестре мусор не создавать |
Цитата:
достаточно этого Uninstallable=false - Не создавать деинсталлятор ну а если уж так хочется деинсталлировать то достаточно этого: CreateUninstallRegKey=false - Не создавать в реестре ключ деинсталляции ну а это вроде для того если устанавливаешь один раз, по моему так: UpdateUninstallLogAppName=false - Не обновлять имя приложения в журнале деинсталляции |
=El Sanchez, а секция code мне не нужна ?
Uninstallable=not IsComponentSelected('portable') создает удалятор в папке программы. если на него нажать он сам удаляется. программа остается. UninstallFilesDir={app}\uninstall |
Цитата:
У тебя уже два варианта: 1. делать чистый портейбл с использованием CreateUninstallRegKey=false, где код который ищет ветку реестра для деинталляции, не понадобится 2. то что тебе предложил El Sanchez, т.е у него 2 в одном и установка как обычного так и портейбл, где в принципе код будет к стати. |
Цитата:
Цитата:
Цитата:
Теперь вопрос. Почему я не написал такой вот напрашивающийся сам собой вариант? Код:
Uninstallable=IsComponentSelected('default') //т.е. создавать деинсталлятор, если выбрана обычная установка. |
Цитата:
|
Цитата:
|
Доброго времени суток.
Подскажите в чем проблема - текст при выборе папки установки/группы (меню "Пуск") не обновляется. Возьмем стандартный путь "C:\Program Files\Stalker" - в полоске "путь установки" отображается такой же; если его (во время инсталляции) изменить, например, на "D:\Games\Stalker" - путь установки изменится, но текст в полоске будет стандартным ("C:\Program Files\Stalker"). Как решить эту проблему? Надеюсь Вы поняли, что я имел в виду. Вот сам скрипт. P.S.: Лександер, спасибо. Проблема с нулями и вправду решилась после перехода на Ansi-версию :) |
Цитата:
к тому же стиль WS_EX_COMPOSITED нужен был, чтоб окно не мигало, а отказавшись от старой панели работающей через .repaint, из-за которой оно мигало, в нём тоже отпала необходимость (кажется) Цитата:
(изменил один из примеров вот этот ) и в то время же накосячил! не хочет закатываться!:( зато выкатывается :) вот что получилось: помогите поправить пожалуйста! |
|
Лександер,
Спасибо! поправил ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, и ещё вопрос закометировал строки с KillTimer в процедуре и всё нормально правильно ли? может достаточно просто освобождать таймер при переходе на следующую страницу, а не каждый раз после выката и заката? |
скорее так, тогда:
Код:
procedure Timer2; |
Лександер,
поправил назначил родителем панели страницу приветствия (для теста перехода) странным образом при переходе во время выката на wpSelectDir и обратно она не застревает, а как будто бы выкатывается/закатывается "за глазами" а при быстром переходе продолжает выкатываться, хотя таймер должен был быть освобождён! может это и есть вся прелесть CallbackAddr :), ведь эта функция числится среди расширенных? |
Johny777, нет. во первых у тебя не обозначен идентификатор таймера, во вторых ты запускаешь таймер с nIDEvent равным 1 а закрываешь - 0, тоесть совсем другой таймер.
Цитата:
|
Лександер,
ясно вернул единицу на место могу ли я любое число (скажем 4) в хэндл ставить, чтоб другие таймеры не закрыть случайно? те SetTimer(WizardForm.Handle, 4, 5 .... и KillTimer(WizardForm.Handle, 4); Код:
procedure Timer2(Sender: TObject); |
alert30, мне нельзя спросить как запретить создавать unistall?
|
можно так:
Код:
var Цитата:
Johny777 таки я напутал :) вот так правильно будет. Заодно сделал на встроенном в расширенную версию каллбеке. |
Лександер,
вылетало с ошибкой дубликата на слове timer (в процедуре таймер) переименовал не читать дальше » timerA : Integer - для оптимизации или простоты? ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, Цитата:
|
Ну, и нет пределов совершенству, как говорит Seregа, - в одной процедуре таймера сделал, до кучи - как говорится, пользуйте, как лучше нравится :)
Цитата:
|
Лександер,
и везде SettingPanel.Top = -315 кажись правильнее будет записать SettingPanel.Top = ScaleY(-315) El Sanchez, думаю этим примерам прямая дорога в шапку, в "Ссылки на примеры скриптов" :) |
Johny777, поправил, теперь можно на ходу менять направление :)
В одной процедуре - просто меньше шансов запутаться в дальнейшем. Цитата:
|
Johny777, нужно рассчитывать интервал таймера и сдвиг контрола в зависимости от размеров самого контрола. Если у меня, к примеру, панель высотой в 2 пикселя и надо все это дела выкатить/закатить за, скажем, 1 сек., то фиксированный сдвиг в 3 пикселя и фиксированный интервал таймера в 5 мс не катят. Убил полдня на алгоритм, вот вариант.
|
Цитата:
Спасибо! :blush2: очень удобно то, что в процедуре настраивать ничего не нужно записал в "HideShow" "$0" (у меня ведь выкат слева) а в закомментированных строках с препиской //debug на конце можно вписать изменение названия кнопки/выпадающего меню (у меня) (MnuItem.Caption := ExpandConstant('{cm:Console0}'); MnuItem.Caption := ExpandConstant('{cm:Console1}')) В общем разобрался немного! : |
какой выбрать уровень сжатия
fast normal max ultra чтобы данные не повредить чрезмерным сжатием и галочку ставить "уплотненное сжатие файлов"? |
Цитата:
хз, тк не интересовался особо, но вроде прекомп может повредить и то при условиях... но, что стоит в справке= одобрено те сжимай как хош :) вот например настройка на максимальное сжатие стандартными (встроенными. а инно использует lzma/lzma2 алгоритмы = 7Zip архиватор) средствами только словарь настрой тестами под себя также если есть "тяжёлые" компоненты, то не используй SolidCompression=true, который может повысить уровень сжатия и учти, что чем выше сжатие, тем дольше распаковка ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, Цитата:
https://www.kymoto.org/inno-script-studio/download попробуй |
Цитата:
|
|
все эти программы для inno setup которые Я скачал однотипные и примитивные. нет нормального графического оформления, настройка страниц, отключение деинсталляции для определенных компонентов и еще много чего.
Цитата:
|
как эту панельку на странице компонентов убрать? |
bugmenotagain, хотите вообще, чтобы страница компонентов не было? Тогда в секцию Components.
|
bugmenotagain,
Код:
procedure InitializeWizard(); |
alert30, Я хочу чтобы там были флажки и чекбоксы.
|
Dark_Delphin,
думаю могу намутячить тебе вызов формы (зачем месседж бокс, ведь форма лучше) при нажатии (OnClick) на картинку, но картинку через бмп. пнг это ботва а с ней не дружу но сделаю это позже ты скажи ,если что, что должно быть на форме (картинки или текст) :) |
Johny777, у меня иснатялтор прозрачный внизу. Хотелось бы сделать там png лого с вызовом msgbox...
|
Johny777, если png не получается, то наврное всё-таки сделаю просто кнопку..
|
Dark_Delphin, как ты сделал прозрачный инсталлятор внизу?
|
bugmenotagain, iswin7.dll
|
|
|
Как убрать мерцание картинок при переходе с одной страницы на другую...Я использую на всех странницах bmp вот код...
|
Ваня
пиши координаты не так WizardForm.GroupBrowseButton.Width :=90 WizardForm.GroupBrowseButton.Height :=23 а вот так WizardForm.GroupBrowseButton.Width :=ScaleX(90); WizardForm.GroupBrowseButton.Height :=ScaleY(23); ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, и в твоём куске сплошные координаты либо я не вижу, либо дело в том, что ты предоставил огрызок да ещё и маленький, но понять почему у тебя мигают картинки не получается! :( ............................................................... и за что отвечает ImagePanel (панель)? и почему на ней картинка? |
Прекращаем флуд!
Пожалуйста сконцентрируйтесь на теме. товарищ bugmenotagain за словесное недержание отправлен подумать и помолчать на 3 дня. |
Ivan_009, зачем ты выкладываешь скрипт в формате *txt???
|
valyok666, скорей всего потому, что форум не разрешает цеплять *.iss во вложение.
Ivan_009, с файлами залей, судя по коду, весело у тебя все там - перегрузка рюшками я это называю. |
Лександер вот скрипт
|
Вложений: 1
Ivan_009, для твоего случая El Sanchez давал както решение. должно помочь, вроде. Я на юникоде компилил, там моргания не обнаружил, но все-же добавил эту строчку. Скрипт во вложении, пробуй.
|
Цитата:
|
Продолжение в http://forum.oszone.net/thread-235078.html
|
Время: 10:08. |
Время: 10:08.
© OSzone.net 2001-