Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 4]
R.i.m.s.k.y.
16-05-2012, 12:42
скажите тут есть темы на другие установщики? inno setup , nsis слишком для программистов »
А как ты хотел, делать что-то для компа и не знать основ не получиццо
Любая программа будет слишком если в ней не разбираться
Ivan_009
16-05-2012, 14:22
Подскажите для чего эта функция нужна ли она в слайдшоу...function GetSystemMetrics(nIndex:Integer):Integer; external 'GetSystemMetrics@user32.dll stdcall'; :search:
bugmenotagain
16-05-2012, 14:29
Твой вопрос можно было сделать и без секции кода одним мастером в инно: 3 инсталла, один обычный, один портативный и один главный который запускает выбранное »
по подробней. кстати, главный файл exe выбирать ?
R.i.m.s.k.y.
16-05-2012, 14:36
bugmenotagain, Можно и поподробней, но не хочется
про главный файл не понял, где и зачем его выбирать?
Подскажите для чего эта функция нужна ли она в слайдшоу...function GetSystemMetrics(nIndex:Integer):Integer; external 'GetSystemMetrics@user32.dll stdcall'; »
если не изменяет склероз получает размер экрана
Ivan_009
16-05-2012, 14:44
R.i.m.s.k.y у меня и за этой функции ошибка если ее отлючить то все нормально работает :)
R.i.m.s.k.y.
16-05-2012, 14:46
Ivan_009,
Ну если бы ты хотел чтобы тебе помогли то наверное ты бы показал ошибку или привел ее текст
Точно по тексту скрипта нет вызова этой функции?
Ivan_009
16-05-2012, 15:03
R.i.m.s.k.y вот ошибки
bugmenotagain
16-05-2012, 15:15
как изменить страницу компонентов
http://i34.fastpic.ru/thumb/2012/0516/29/7e56cd64adfe809eeaae12276acb2d29.jpeg (http://fastpic.ru/view/34/2012/0516/7e56cd64adfe809eeaae12276acb2d29.png.html)
http://i34.fastpic.ru/thumb/2012/0516/7a/ddb75191d47209aad4546d510401337a.jpeg (http://fastpic.ru/view/34/2012/0516/ddb75191d47209aad4546d510401337a.png.html)
Ivan_009
16-05-2012, 16:34
Подскажите как убрать белую область пробовал через SetBounds(ScaleX(79), ScaleY(61), ScaleX(798), ScaleY(620)) не получаеться зараннее спасибо... :search:
Johny777
16-05-2012, 16:50
ну что ж ты Вань
картинку сдвинь или растяни (всего-то несколько пикселей)
название_картинки.Width := WizardForm.Width;
название_картинки.Stretch := true;
Ivan_009
16-05-2012, 16:55
Johny777 Спасибо... :up
El Sanchez
16-05-2012, 17:53
bugmenotagain, запуск деинсталлятора портативной установкой на этапе ssDone это, я так понимаю, для того, чтобы не было файлов деинсталлятора и записей в реестре, т.е. превращаем обычную установку в обычную. Вся эта стройная схема рушится по нескольким причинам: портативная установка в одну папку поверх обычной перепишет/добавит файлы от обычной установки, что есть нехорошо; портативная установка в одну папку поверх обычной на этапе ssDone своим вызовом деинсталлятора вынесет вместе с реестровыми записями и файлами деинсталлятора еще и только что распакованные файлы и, возможно, программную папку. Получим либо голое место, либо только файлы, не вошедшие в лог деинсталлятора.
Начните с этого шаблона и почитайте, наконец, справку:
#define MyAppName "WinDjView"
#define MyAppVersion "1.0.3"
#define MyAppExeName "WinDjView.exe"
[Setup]
AppName={#MyAppName}
AppVerName={#MyAppName} {#MyAppVersion}
DefaultDirName={pf}\{#MyAppName}
Uninstallable=not IsComponentSelected('portable')
[Languages]
Name: ru; MessagesFile: compiler:Languages\russian.isl
[Files]
Source: C:\Program Files\WinDjView\*; DestDir: {app}; Flags: ignoreversion createallsubdirs recursesubdirs; Components: default
Source: WinDjViewPortable\*; DestDir: {app}\portable; Flags: ignoreversion createallsubdirs recursesubdirs; Components: portable
[Components]
Name: default; Description: Обычная установка; Flags: exclusive
Name: portable; Description: Портативная установка; Flags: exclusive
[Run]
Filename: {app}\{#MyAppExeName}; Flags: nowait postinstall skipifsilent; Components: default
Filename: {app}\portable\{#MyAppExeName}; Flags: nowait postinstall skipifsilent; Components: portable
bugmenotagain
16-05-2012, 18:15
El Sanchez, а вы можете сказать точно как в установщике сделать распаковку портативной программы? без всякого мусора. справку Я читаю. там нет ничего про портативную распаковку.
El Sanchez, Я думаю надо добавить еще CreateUninstallRegKey. в реестре мусор не создавать
Devils Night
16-05-2012, 18:22
для того, чтобы не было файлов деинсталлятора и записей в реестре »
bugmenotagain, на сколько помню:
достаточно этого
Uninstallable=false - Не создавать деинсталлятор
ну а если уж так хочется деинсталлировать то достаточно этого:
CreateUninstallRegKey=false - Не создавать в реестре ключ деинсталляции
ну а это вроде для того если устанавливаешь один раз, по моему так:
UpdateUninstallLogAppName=false - Не обновлять имя приложения в журнале деинсталляции
bugmenotagain
16-05-2012, 18:27
=El Sanchez, а секция code мне не нужна ?
Uninstallable=not IsComponentSelected('portable')
создает удалятор в папке программы. если на него нажать он сам удаляется. программа остается.
UninstallFilesDir={app}\uninstall
Devils Night
16-05-2012, 18:35
а секция code мне не нужна ? »Вроде тот код который у тебя, он вроде ищет ветку реестра для деинталляции, так? Если так, и если у тебя портейбл, да и смотреть с точки зрения логики то не нужно, потому как при CreateUninstallRegKey=false, ключ в реестре создаваться не будет, а значит нечего и искать там.
У тебя уже два варианта:
1. делать чистый портейбл с использованием CreateUninstallRegKey=false, где код который ищет ветку реестра для деинталляции, не понадобится
2. то что тебе предложил El Sanchez, т.е у него 2 в одном и установка как обычного так и портейбл, где в принципе код будет к стати.
El Sanchez
16-05-2012, 20:21
а вы можете сказать точно как в установщике сделать распаковку портативной программы? без всякого мусора »
Uninstallable=not IsComponentSelected('portable') »
Директива Uninstallable указывает установщику создавать/не создавать деинсталлятор и записи деинсталлятора в реестре. В данном случае значение директивы зависит от результата функции IsComponentSelected с параметром portable, т.е. если мы не выбрали компонент portable (Портативная установка), то IsComponentSelected('portable') вернет False, а с учетом того, что перед функцией стоит оператор not, то not False становится True. Деинсталлятор будет создаваться. Ну и наоборот.
справку Я читаю. там нет ничего про портативную распаковку. »
Setting this to a boolean expression can be useful if you want to offer the user a 'portable mode' option.
Example:
[Setup]
Uninstallable=not IsTaskSelected('portablemode')
[Tasks]
Name: portablemode; Description: "Portable Mode"
Теперь вопрос. Почему я не написал такой вот напрашивающийся сам собой вариант?
Uninstallable=IsComponentSelected('default') //т.е. создавать деинсталлятор, если выбрана обычная установка.
R.i.m.s.k.y.
16-05-2012, 20:33
Uninstallable=IsComponentSelected('default') »
камрад, я о таком даже не догадывался!
Gnom_aka_Lexander
16-05-2012, 20:49
камрад, я о таком даже не догадывался! »
в принципе, почти все параметры секции setup, которые требуют ответа - да-нет, могут управлятся булевыми функциями из кода, или встроенными. мне попадались параметры, которые принимают только прямой ответ, сейчас не помню уже, но это только те, которые работают сразу, при запуске инсталла. Те параметры, которые используются в конце установки - вполне управляемы внешними условиями.
Sotonisto
16-05-2012, 22:50
Доброго времени суток.
Подскажите в чем проблема - текст при выборе папки установки/группы (меню "Пуск") не обновляется.
Возьмем стандартный путь "C:\Program Files\Stalker" - в полоске "путь установки" отображается такой же; если его (во время инсталляции) изменить, например, на "D:\Games\Stalker" - путь установки изменится, но текст в полоске будет стандартным ("C:\Program Files\Stalker"). Как решить эту проблему?
Надеюсь Вы поняли, что я имел в виду. Вот сам скрипт (http://rghost.ru/38086233).
P.S.: Лександер, спасибо. Проблема с нулями и вправду решилась после перехода на Ansi-версию :)
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.