Ru-Board.club
← Вернуться в раздел «Программы»

» Inno Setup (создание инсталяционных пакетов)

Автор: Raf_SE
Дата сообщения: 24.04.2009 14:03
DeKaNszn
Да, некоторые похожие скрипты там есть. Но во-первых не все. Во-вторых, для меня очень проблематично их даже "склеить", не то что дописывать...
Автор: spider91
Дата сообщения: 24.04.2009 14:06
Cоздал тему про сжатие, заинтересованным сюда
Автор: SiluetPro
Дата сообщения: 24.04.2009 15:49
как скрыть (именно скрыть, а не просто отключить) кнопку назад?
Автор: doombuster
Дата сообщения: 24.04.2009 16:15
SiluetPro
[more]
procedure CurPageChanged(CurPageID: Integer);
begin
WizardForm.BackButton.hide;
end;[/more]
Только такое приходит в голову)

И как понять "именно скрыть", для некоторых страниц или вообще)?

Добавлено:
[Setup]
WizardSmallImageFile=(путь до картинки размером 55х55 пикселей)
Автор: SiluetPro
Дата сообщения: 24.04.2009 17:30
doombuster, большое Тебе спасибо!

procedure CurPageChanged(CurPageID: Integer);
begin
WizardForm.BackButton.hide;
end;

дало нужный результат!
Автор: tahirg
Дата сообщения: 24.04.2009 19:28
что только можно прочёл,ну не догоняю
помогите люди
круг хотелок сузил до двух
первая самая важная
как реализовать

при установке
1-Версия Проф, запретить установку Рос.законодательство и Бухгалтер:Версия Проф НормативныеДокументы

при установке
2-Рос.законодательство, запретить установку Версия Проф, но дать возможность устанавливать\неустанавливать Бухгалтер:Версия Проф НормативныеДокументы

при установке
3-Бухгалтер:Версия Проф НормативныеДокументы, запретить установку Версия Проф, но дать возможность устанавливать\неустанавливать Рос.законодательство

частично я сделал, но дальше ума нехватает

и вторая хотелка
как сделать раскрывающийся список компонентов со значком +
сам проект с исходниками http://ifolder.ru/11793306
300кб
Автор: SiluetPro
Дата сообщения: 24.04.2009 19:33
как вставить свою картинку на странице выбора директории, под верхней шапкой (там где кнопка "обзор" и т.д.)?
Автор: Igrikxxx
Дата сообщения: 24.04.2009 20:52
SotM

Пробывал скомпилировать, выдает ошибку, после вот этого

Procedure InitializeWizard();
begin
InitializeSkin
end;

На эту строку

procedure InitializeWizard();
Автор: spider91
Дата сообщения: 24.04.2009 21:06
Igrikxxx

нельзя иметь две одинаковые процедуры. добавь содержимое одной в другую
Автор: boss911
Дата сообщения: 24.04.2009 21:31
Есть две папки (и два файла, но в примере я их не указываю) -

Код: [Files]
Source: C:\My Ptog\My Folder\FOLDER0\*; DestDir: {app}\My Folder\FOLDER0
Source: C:\My Ptog\My Folder\FOLDER1\*; DestDir: {app}\My Folder\FOLDER1
Автор: X11
Дата сообщения: 24.04.2009 22:19
Не знаю, есть ли русские ресурсы. Вот мой перевод.

Цитата:

[Messages]
AdminPrivilegesRequired=Вы должны иметь права администратора для продолжения установки.
ButtonBack=Назад
ButtonBrowse=Обзор
ButtonCancel=Отмена
ButtonFinish=Закончить
ButtonInstall=Установить
ButtonNewFolder=Создать новую папку
ButtonNext=Далее
ButtonNo=Нет
ButtonNoToAll=Нет для всех
ButtonYes=Да
ButtonYesToAll=Для для всех
CannotContinue=Установка не может продолжиться. Нажмите кнопку Отмена для выхода.
ClickFinish=Нажмите Закончить для выхода из установки.
ErrorCopying=Произошла ошибка во время копирования файла:
ClickNext=Нажмите Да для продолжения или Отмена для выхода из установки.
ConfirmTitle=Подтвердить
ConfirmUninstall=Вы уверены, что хотите полностью удалить %1 и все компоненты?
CustomInstallation=Пользовательская установка
DirDoesntExistTitle=Папка не существует
DirExistsTitle=Папка существует
EntryAbortRetryIgnore=Нажмите Повтор для ещё одной попытки, Игнорировать для продолжения или Прервать для отмены установки.
AboutSetupMenuItem=Об Установке
AboutSetupMessage=%1 версия %2%n%3%n%n%1 домашняя страница:%n%4
AboutSetupTitle=Об Установке
BadDirName32=Имя папка не может содержать некоторые из этих символов:%n%n%1
BadGroupName=Имя папки не может включать некоторые тз этих символов:%n%n%1
BrowseDialogLabel=Выберите папку из списке ниже и нажмите Ок.
BrowseDialogTitle=Обзор папки
ButtonWizardBrowse=Обзор
ChangeDiskTitle=Установщик требует следующий диск
ClickNext=Нажмите Далее для продолжения или Отмена для выхода.
CompactInstallation=Компактная установка
ComponentsDiskSpaceMBLabel=Текущий выбор требует как минимум [mb] Мб дискового пространства.
ComponentSize1=%1 КБ
ComponentSize2=%1 МБ
ConfirmDeleteSharedFile2=Система указывает, что следующий общий файл не находится больше в использовании другими программами. Вы хотели бы деинсталлировать этот общий файл?%n%nЕсли другие программы все еще используют этот файл и он будет перемещен/удален, то те программы, возможно, не смогут функционировать должным образом. Если вы не уверены, то оставьте файл в Вашей системе, он не вызовет никакого вреда.
ConfirmDeleteSharedFileTitle=Удалить общий файл?
DirDoesntExist=Папка:%n%n%1%n%nне существует. Желаете создать папку?
DirExists=Папка:%n%n%1%n%nуже существует. Желаете инсталлировать в эту папку?
DirNameTooLong=Имя папки или пути слишком длинное.
DiskSpaceMBLabel=Как минимум [mb] МБ свободного места требуется.
DiskSpaceWarning=Установка требует как минимум %1 КБ свободного места, но выбранный диск имеет только %2 КБ доступмного места.%n%nВы желаете продолжить?
DiskSpaceWarningTitle=Нет свободного места на диске
ErrorChangingAttr=Во время изменения атрибутов существующего файла произошла ошибка:
ErrorCopying=Во время копирования файла произошла ошибка:
ErrorCreatingDir=Установщик не может создать папку "%1"
ErrorCreatingTemp=Во время создания файла в папке назначения произошла ошибка:
ErrorExecutingProgram=Не могу выполнить файл:%n%1
ErrorFunctionFailed=%1 ошбка; код %2
ErrorFunctionFailedNoCode=%1 ошибка
ErrorFunctionFailedWithMessage=%1 ошибка; код %2.%n%3
ErrorIniEntry=Ошибка создания входа в INI в файл "%1".
ErrorInternal2=Внутренняя ошибка: %1
ErrorOpeningReadme=Произошла ошибка во время открытия файла README.
ErrorReadingExistingDest=Во время чтения файла назначения произошла ошибка:
ErrorReadingSource=Во время чтения исходного файла произошла ошибка:
ErrorRegCreateKey=Ошибка создания ключа реестра:%n%1\%2
ErrorRegisterServer=Не могу зарегистрировать DLL/OCX: %1
ErrorRegisterTypeLib=Не могу зарегистрироваь библиотеку типов: %1
ErrorRegOpenKey=Ошибка чтения ключа реестра:%n%1\%2
ErrorRegSvr32Failed=RegSvr32 вызвала ошибку с кодом %1
ErrorRegWriteKey=Ошибка записи ключа реестра:%n%1\%2
ErrorRenamingTemp=Произошла ошибка во время переименования файла в папке назначения:
ErrorReplacingExistingFile=Произошла ошибка во время перезаписи существующего файла:
ErrorRestartingComputer=Установщик не может перезапустить компьютер. Сделайте это вручную.
ErrorRestartReplace=RestartReplace потерпел неудачу:
ErrorTitle=Ошибка
ErrorTooManyFilesInDir=Невозможно создать файл в папке "%1", потому что она содержит слишком много файлов
ExistingFileNewer=Существующий файл новее чем тот, который Установщих пытается инсталлировать. Рекомендуется сохранить существующий файл.%n%nСохранить существующий файл?
ExistingFileReadOnly=Существующий файл отмечен, как "только для чтения".%n%nЩелкните Повторить, чтобы удалить атрибут "только для чтения" и попытку снова, Игнорировать, чтобы пропустить этот файл, или Прервать, чтобы отменить установку.
ExitSetupMessage=Установка не была завершена. Если Вы выйдете сейчас, то программа не будет установлена.%n%nВы можете запустить Установку заново в следующий раз для завершения установки.%n%nВыйти из Установки?
ExitSetupTitle=Выход из Установки
FileAbortRetryIgnore=Щелкните Повтор для повторной попытки, Игнорировать для пропуска файла(не рекомендуется), или Прервать для отмены инсталляции.
FileAbortRetryIgnore2=Щелкните Повтор для повторной попытки, Игнорировать для продолжения(не рекомендуется), или Прервать для отмены инсталляции.
FileExists=Файл уже существует.%n%nВы хотите, чтобы Установщик перезаписал его?
FileNotInDir2=Файл "%1" не найден в "%2". Пожалуйста вставьте нужный диск или выберите другую папку.
FinishedHeadingLabel=Завершение [name] Мастера установки.
FinishedLabel=Установщик закончил инсталляцию [name] на Ваш компьютер. Приложение может быть запущено путём выбора соответсвующего значка на рабочем столе или в группе программ "Пуск->Все программы->"
FinishedLabelNoIcons=Установщик закончил инсталляцию [name] на Ваш компьютер.
FinishedRestartLabel=Для завершения установки [name], Установщик должен перезагрузить компьютер. Выполнить перезагрузку сейчас?
FinishedRestartMessage=Для завершения установки [name], Установщик должен перезагрузить Ваш компьютер.%n%nВыполнить перезагрузку сейчас?
FullInstallation=Полная инсталляция
GroupNameTooLong=Имя папки или пути слишком длинное.
IncorrectPassword=Пароль, который Вы ввели неверный. Попробуйте снова.
InfoAfterClickLabel=Когда Вы будете продолжать установку, нажмите Далее.
InfoAfterLabel=Пожалуйста, прочтите следующую важную информацию перед продолжением.
InfoBeforeClickLabel=Когда будете готовы продолжить установку, нажмите Далее.
InfoBeforeLabel=Пожалуйста, прочтите следующую важную информацию перед продолжением.
InformationTitle=Информация
InstallingLabel=Пожалуйста, подождите пока Установщик инсталлирует [name] на Ваш компьютер.
InvalidDirName=Имя папки неверное.
InvalidDrive=Имя диска/устройства или UNC, которрое вы выбрали не существует или недоступно. Пожалуйста, выберите другое.
InvalidGroupName=Имя папки неверное.
InvalidPath=Вы должны ввести полный путь с буквой диска; например:%n%nC:\APP%n%nили UNC путь по форме:%n%n\\server\share
LastErrorMessage=%1.%n%nОшибка %2: %3
LdrCannotCreateTemp=Установщику не удается создать временный файл. Инсталляция будет прервана.
LdrCannotExecTemp=Невозможно выполнить файл во временной папке. Инсталляция будет прервана.
WelcomeLabel1=Добро пожаловать в установку [name]
WelcomeLabel2=Будет выполнена установка [name/ver] на Ваш компьютер.%n%nРекомендуется закрыть все приложения перед продолжением установки.
WizardLicense=Лицензионное соглашение
LicenseAccepted=Я подтверждаю соглашение
LicenseLabel=Пожалуйста, прочитайте эту важную информацию.
LicenseLabel3=Пожалуйста, прочитайте Лицензионное Соглашение. Вы должды принять условия этого соглашения перед тем, как продолжить установку (инсталляцию):
LicenseNotAccepted=Я не подтверждаю соглашения
UninstallAppTitle=Удаление
MissingWOW64APIs=Версия Windows, в которой Вы работаете, не имеет функционала, требуемый Установщиком для выполнения 64-битной инсталляции.Для устранения этой проблемы, пожалуйста, установите Servise Pack %1.
MustEnterGroupName=Вы долждны ввести имя папки.
NewFolderName=Новая папка
NoProgramGroupCheck2=Не создавать папку в "Пуск->Все программы"
NoRadio=Нет, я перезагружу компьютер позже
NotOnThisPlatform=Эта программа не будет работать на %1.
NoUninstallWarning=Установщик определил, что некоторые компоненты уже установлены на этом компьютере:%n%n%1%n%nПри снятии выделения с этих компонентов не отменит их установку.%n%nВы все равно хотите продолжить?
NoUninstallWarningTitle=Компоненты существуют.
OnlyAdminCanUninstall=Эта инсталляция может быть деинсталлирована только пользователем с правами администратора.
OnlyOnTheseArchitectures=Эта программа может быть установлена на версию Windows, рассчитанную на архитектеру этого процессора:%n%n%1
OnlyOnThisPlatform=Эта программа должна быть запущена на %1.
PasswordEditLabel=Пароль:
PasswordLabel1=Эта инсталляция защищена паролем.
PasswordLabel3=Пожалуйста, введите пароль, затем нажмите Далее для продолжения. Пароль регистрозависим, т.е. зависит от высоты символов.
PathLabel=Путь:
PowerUserPrivilegesRequired=Вы должны войти в систему с правами администратора или опытного пользователя, когда устанавливаете эту программу.
PreparingDesc=Установщик готовится инсталлировать [name] на Ваш компьютер.
PreviousInstallNotCompleted=Эта инсталляция/деинсталляция предыдущей программы не была завершена. Вы должны перезагрузить компьютер для завершения инсталляции.%n%nПосле перезагрузки компьютера запустите инсталляцию снова для завершения установки [name].
ReadyLabel1=Установщик готов начать инсталляцию [name] на Ваш компьютер.
ReadyLabel2a=Щелкните по "Установить" для продолжения инсталляции или щелкните "Назад" для изменения др. настроек.
ReadyLabel2b=Щелкните "Установить" для продолжения инсталляции.
ReadyMemoComponents=Выберите компоненты.
ReadyMemoDir=Место установки:
ReadyMemoGroup=Меню "Пуск->Все программы":
ReadyMemoGroup=Папка "Пуск->Все программы":
ReadyMemoTasks=Дополнительные задания:
ReadyMemoType=Тип установки:
ReadyMemoUserInfo=Информация о пользователе:
RunEntryExec=Запуск %1
RunEntryShellExec=Открыть: %1
SelectComponentsDesc=какие компоненты должны быть установлены?
SelectComponentsLabel2=Выберите компоненты, которые хотите установить; снимите отметку с компонентов, которые не хотите устанавливать. Щелкните "Далее", когда будете готовы продолжать установку.
SelectDirBrowseLabel=Для продолжения щелкните "Далее". Если хотите выбрать другую папку, щелкните "Обзор".
SelectDirDesc=Где должен быть установлен [name]?
SelectDirectoryLabel=Пожалуйста, укажите расположение следующего диска.
SelectDirLabel3=Установщик будет инсталлировать [name] в эту папку.
SelectDiskLabel2=Пожалуйста, вставьте Диск %1 и щелкните ОК.%n%nЕсли файлы на этом диске могут быть найдены в папке, отличающейся от показанной на экране, введите корректный путь или щелкните Обзор.
SelectLanguageLabel=Выберите язык для выполнения инсталляции:
SelectLanguageTitle=Выберите язык установки
SelectStartMenuFolderBrowseLabel=Для продолжения нажмите Далее. Если Вы желаете выбрать другую папку, щёлкните Обзор.
SelectStartMenuFolderDesc=Где установщик должен установить ярлык запуска?
SelectStartMenuFolderLabel3=Установщик создаст ярлыки запуска в текущей папке в папке меню "Старт->Все программы"
SelectTasksDesc=Какой дополнительное задание должно быть выполнено?
SelectTasksLabel2=Выберите дополнительное задание, которое должно быть выполнено на протяжении инсталляции [name], затем нажмите Далее.
SetupAborted=Установка не была завершена.%n%nПожалуйста, устраните проблему и запустите Установку заново.
SetupAppRunningError=Установщик определил, что сейчас запущено %1.%n%nПожалуйста, закройте все запущенные экземпляры %1 сейчас, затем нажмите OK для продолжения или Отмена для выхода.
SetupAppTitle=Установка
SetupFileCorrupt=Файл инсталляции повреждён. Пожалуйста, получите новую копию программы.
SetupFileCorruptOrWrongVer=Файл инсталляции повреждён, или несовместим с этой версией установщика. Устраните проблему или получите новую копию программы.
SetupFileMissing=Файл %1 потерян из инсталляционной папки. Устраните проблему или получите новую копию программы.
SetupLdrStartupMessage=Будет установлено %1. Желаете продолжить?
SetupWindowTitle=Установка - %1
SharedFileLocationLabel=Размещение:
SharedFileNameLabel=Имя файла:
ShowReadmeCheck=Да, я желаю прочесть файл ReadMe
SourceDoesntExist=Исходный файл "%1" не существует
SourceIsCorrupted=Исходный файл повреждён
StatusCreateDirs=Создание папок...
StatusCreateIcons=Создание ярлыков...
StatusCreateIniEntries=Созданеие настроек в INI файле...
StatusCreateRegistryEntries=Создание настроек в реестре...
StatusExtractFiles=Распаковка файлов...
StatusRegisterFiles=Регистрация файлов...
StatusRollback=Отмена изменений...
StatusRunProgram=Завершение установки...
StatusSavingUninstall=Сохранение деинсталляционной информации...
StatusUninstalling=Деинсталляция %1...
ToUNCPathname=Установщик не может инсталлировать UNC имя пути. Если Вы пытаетесь инсталлировать по сети, то должны присоединить сетевую папку как диск (map a network drive).
UninstallAppFullTitle=Программа %1 удалена.
UninstallAppRunningError=Деинсталлятор определил что запущена программа %1.%n%nПожалейста, закройте её сейчас и нажмите OK или нажмите Отмена для выхода.
UninstallAppTitle=Деинсталляция
UninstallDataCorrupted="%1" файл повреждён. Деинсталляция невозможна.
UninstalledAll=Программа %1 балы успешно удалена с Вашего компьтера.
UninstalledAndNeedsRestart=Для завершения деинсталляции %1, Ваш компьютер должен быть перезагружен.%n%nВы желаете перезагрузить его сейчас?
UninstalledMost=Завершена деинсталляция программы %1.%n%nНекоторые элементы не могут быть удалены автоматически. Вы должны удалить из вручную.
UninstallNotFound=Файл "%1" не существует. Не могу деинсталлировать.
UninstallOnlyOnWin64=Эта установка может быть деинсталлирована только на 64-битной Windows.
UninstallOpenError=Файл "%1" не может быть открыт. Не могу деинсталлировать.
UninstallStatusLabel=Пожалуйста, ждите, пока "%1" удаляется с Вашего компьютера.
UninstallUnknownEntry=Неизвестная точка входа (%1) была найдена в логе деинсталляции.
UninstallUnsupportedVer=Не распознан формат лог-файла деинсталляции "%1" этой версией установщика. Деинсталляция невозможна.
UserInfoDesc=Пожалуйста, введите свою информацию.
UserInfoName=Имя пользователя:
UserInfoNameRequired=Вы должны имя пользователя.
UserInfoOrg=Организация:
UserInfoSerial=Серийный номер:
WelcomeLabel1=Добро пожаловать в мастер установки [name]
WelcomeLabel2=Будет произведена установка [name/ver] на Ваш компьютер.%n%nРекомендуется закрыть все приложения перед продолжением установки.
WinVersionTooHighError=Эта программа не может быть установлена на %1 версии %2 или более позднюю.
WinVersionTooLowError=Эта программа требует %1 версию %2 или более позднюю.
WizardInfoAfter=информация
WizardInfoBefore=Информация
WizardInstalling=Инсталляция
WizardLicense=Лицензионное Соглашение
WizardPassword=Пароль
WizardPreparing=Подготовка к инсталляции
WizardReady=Готов к инсталляции
WizardSelectComponents=Выберите компоненты
WizardSelectDir=Выберите место установки
WizardSelectProgramGroup=Выберите папку в меню "Старт->Все программы"
WizardSelectTasks=Выберите дополнительные задания
WizardUninstalling=Статус деинсталляции
WizardUserInfo=Информация о пользователе
YesRadio=Да, перезапустить компьютер сейчас
Автор: Serega0675
Дата сообщения: 25.04.2009 01:14
boss911
Если я правильно понял, то [more=так]
Код: [Files]
Source: C:\My Ptog\My Folder\FOLDER0\*; DestDir: {app}\My Folder\FOLDER0; Check: MyNameProg_A; Flags: ignoreversion recursesubdirs createallsubdirs
Source: C:\My Ptog\My Folder\FOLDER1\*; DestDir: {app}\My Folder\FOLDER1; Check: MyNameProg_B; Flags: ignoreversion recursesubdirs createallsubdirs

[Code]
var
RegKey: DWORD;

function MyNameProg_A: Boolean;
begin
RegQueryDWordValue(HKLM, 'SOFTWARE\My Prog', 'MyNameProg', RegKey);
if RegKey <> $1 then
Result:= True else Result:= False;
end;

function MyNameProg_B: Boolean;
begin
RegQueryDWordValue(HKLM, 'SOFTWARE\My Prog', 'MyNameProg', RegKey);
if RegKey <> $0 then
Result:= True else Result:= False;
end;
Автор: spider91
Дата сообщения: 25.04.2009 02:15
я установил версию 5.2.3 и ResTools но пользоватся им не умею.
может кто подскажет как сделать раскрывающиесь чекбоксы.
Автор: boss911
Дата сообщения: 25.04.2009 05:07
Serega0675

Суть вы уловили, это главное. Но, в [more=этом случае]
Код: [Files]
Source: C:\My Ptog\My Folder\FOLDER1\*; DestDir: {app}\My Folder\FOLDER1; Check: MyNameProg_1
Source: C:\My Ptog\My Folder\FOLDER0\*; DestDir: {app}\My Folder\FOLDER0; Check: MyNameProg_0

[_Code]
var
RegKey: DWORD;

function MyNameProg_1;
begin
RegQueryDWordValue(HKLM, 'SOFTWARE\My Prog', 'MyNameProg', RegKey);
if RegKey <> $1 then
Result:= True else Result:= False;
end;

function MyNameProg_0: Boolean;
begin
RegQueryDWordValue(HKLM, 'SOFTWARE\My Prog', 'MyNameProg', RegKey);
if RegKey <> $0 then
Result:= True else Result:= False;
end;
Автор: DeKaNszn
Дата сообщения: 25.04.2009 07:39
boss911

попробуй


Код: [no][Files]
Source: C:\My Ptog\My Folder\FOLDER0\*; DestDir: {app}\My Folder\FOLDER0; Check: Checking('0'); Flags: ignoreversion recursesubdirs createallsubdirs
Source: C:\My Ptog\My Folder\FOLDER1\*; DestDir: {app}\My Folder\FOLDER1; Check: Checking('1'); Flags: ignoreversion recursesubdirs createallsubdirs

[Code]
var
RegKey: DWORD;

function Checking(S: String): Boolean;
begin
RegQueryDWordValue(HKLM, 'SOFTWARE\My Prog', 'MyNameProg', RegKey);
if ((RegKey = $1) and (S = '1')) or ((RegKey = $0) and (S = '0'))
then Result:= True
else Result:= False;
end;[/no]
Автор: Serega0675
Дата сообщения: 25.04.2009 08:46
boss911
Во первых, я думаю, вы просто сделали опечатку, т.е. во втором примере вы копируете:
Source: C:\My Ptog\My Folder\FOLDER0\*; DestDir: {app}\My Folder\FOLDER1;
хотя теоретически, должно быть:
Source: C:\My Ptog\My Folder\FOLDER0\*; DestDir: {app}\My Folder\FOLDER0;
Во вторых, если изменить названия, то должно MyNameProg_0, соответствовать MyNameProg_A, а MyNameProg_1, соответственно MyNameProg_B и тогда всё прекрасно работает, т.е. как вы и спрашивали в первый раз...
Папка FOLDER0, не будет скопированна, только если RegKey = $1, а
Папка FOLDER1, не будет скопированна, только если RegKey = $0.
Автор: Dima555555
Дата сообщения: 25.04.2009 11:05
{вопрос решен}
Автор: namchik
Дата сообщения: 25.04.2009 11:17
Dima555555
проверь наличие в разделе [Setup] строчки:
DefaultGroupName=Eltima Software\Flash Decompiler Trillix
Автор: Dima555555
Дата сообщения: 25.04.2009 11:23
namchik
Спасибо, именно так и сделал


Цитата:
Исправлено: Dima555555, 12:17 25-04-2009


Цитата:
Отправлено: 12:17 25-04-2009


одновременно я пост поправил и вы ответили)))
Автор: SiluetPro
Дата сообщения: 25.04.2009 13:56
как вставить свою картинку на странице выбора директории, под верхней шапкой (там где кнопка "обзор" и т.д.)?
Автор: Kindly
Дата сообщения: 25.04.2009 15:54
All! Нужна помощь поднаторевших пользователей Inno Setup, имеющих установленную 64-битную систему. За неимением 64-битной ОС, нужно проверить:

Как вносятся следующие данные в реестр при использовании гибридного установочного режима 32 + 64-bit:

[Registry]
Root: HKLM; SubKey: SOFTWARE\MYPROG; ValueType: string; ValueName: Test; ValueData: 1

Что нужно в скрипте, чтобы на 32-битке писались данные как обычно, а на 64 добавлялась бы к пути ветка Wow6432Node? Вроде данные реестра должны в зависимости от разрядности ОС по-разному автоматически вноситься. Какие нужны директивы в Setup секции? Может еще какие функции дополнительно?

[Files]
Source: C:\test.txt; DestDir: {sys}; Flags: 32bit 64bit;

Достаточно ли: Flags: 32bit 64bit, чтобы на 32-битке устанавливался файл в системную папку System32, а на 64 в системную папку с имененем SysWOW64?

Либо дополнительно использовать соответствующие функции? Просьба реализовать данный простейший пример и отправить его решение мне в личку, хотя можно и здесь

Также интересует получение пути из реестра (с Wow6432Node) - или используя Is64bit или стандартно, делается ли в Inno это автоматом (в смысле если внесение данных в реестр на 64-бит ОС делается автоматом (+ Wow6432Node), то делается ли атвтоматом получение пути вместе с веткой Wow6432Node через стандартную функцию)?
Автор: msatmb
Дата сообщения: 25.04.2009 15:59
SiluetPro
В шапке есть
Коллекция скриптов и Сборник вопросов, собранных из этой и предыдущих частей топика. Там все про это есть. Если скачаешь коллекцию скриптов, то ищи там файл
NSIS_PageDescriptions.iss
Автор: spider91
Дата сообщения: 25.04.2009 17:08
Kindly


Цитата:
Что нужно в скрипте, чтобы на 32-битке писались данные как обычно, а на 64 добавлялась бы к пути ветка Wow6432Node?



ничего. они и так как у тебя написано добавляются в Wow6432Node.

остальное незнаю.
Автор: Serega0675
Дата сообщения: 25.04.2009 18:20
Kindly
Рад бы ответить, но нечего... т.к. 64-битной не знаком...
Автор: spider91
Дата сообщения: 25.04.2009 18:21
мне ктото поможет с ResTools?
Автор: boss911
Дата сообщения: 25.04.2009 18:38
Serega0675

Цитата:
Во первых, я думаю, вы просто сделали опечатку

Да, это опечатка, но она сути не поменяла, так как важен итог копирования - DestDir. Я исправил верхний пост.


Цитата:
MyNameProg_0, соответствовать MyNameProg_A, а MyNameProg_1, соответственно MyNameProg_B

Я просто переименовал для удобства - "А" на "0", а "В" на "1".

Цитата:
Папка FOLDER0, не будет скопированна, только если RegKey = $1, а
Папка FOLDER1, не будет скопированна, только если RegKey = $0.

Вот об этом я и говорил, то есть я хотел наоборот:
- папка FOLDER1, будет скопирована, только если RegKey = $1 и MyNameProg_1
- папка FOLDER0, будет скопирована, только если RegKey = $0 и MyNameProg_0
В этом случае они должны быть взаимоисключаемые исходя из значения в параметре реестра.



DeKaNszn

Ваш вариант работает отлично, так как мне надо. Спасибо.

Но у меня к вам еще одна задача: если инсталлятор не обнаружит ключ HKLM, 'SOFTWARE\My Prog' или параметр 'MyNameProg' в этом ключе, то оно игнорирует задачу для копирования и копирует обе папки. Сейчас же в таком случае, оно копирует только одну папку, а мне в случае НЕ нахождении, нужно чтобы обе копировались.
Автор: Serega0675
Дата сообщения: 25.04.2009 19:02
boss911
я просто умолкаю, но прежде чем высказать своё мнение, надо хотя бы попробовать скомпилироавать предложенный вам скрипт, без своих изменений... или вот вам простой [more=пример]
Код: [Setup]
AppName=My Program
AppVerName=My Program v 1.5
DefaultDirName={pf}\My Program
OutputDir=.
Compression=lzma/ultra
InternalCompressLevel=ultra
SolidCompression=yes

[Files]
Source: compiler:Examples\MyProg.exe; DestDir: {app}; Check: MyNameProg_A
Source: compiler:Examples\MyProg.chm; DestDir: {app}; Check: MyNameProg_B

[Registry]
Root: HKLM; SubKey: SOFTWARE\My Program; ValueType: dword; ValueName: MyNameProg; ValueData: $1
; Flags: uninsdeletevalue

[Code]
var
RegKey: DWORD;

function MyNameProg_A: Boolean;
begin
RegQueryDWordValue(HKLM, 'SOFTWARE\My Program', 'MyNameProg', RegKey);
if RegKey <> $1 then
Result:= True else Result:= False;
end;

function MyNameProg_B: Boolean;
begin
RegQueryDWordValue(HKLM, 'SOFTWARE\My Program', 'MyNameProg', RegKey);
if RegKey <> $0 then
Result:= True else Result:= False;
end;
Автор: DeathMan GMN
Дата сообщения: 25.04.2009 19:30
Подскажите как сделать картинку как в King's Bounty Принцесса в доспехах. http://img216.imageshack.us/my.php?image=1323q.jpg
Автор: DeKaNszn
Дата сообщения: 25.04.2009 19:32
boss911

вот:

Код: [no][Files]
Source: C:\My Ptog\My Folder\FOLDER0\*; DestDir: {app}\My Folder\FOLDER0; Check: Checking('0'); Flags: ignoreversion recursesubdirs createallsubdirs
Source: C:\My Ptog\My Folder\FOLDER1\*; DestDir: {app}\My Folder\FOLDER1; Check: Checking('1'); Flags: ignoreversion recursesubdirs createallsubdirs

[Code]
var
RegKey: DWORD;

function Checking(S: String): Boolean;
begin
If (RegValueExists(HKLM, 'SOFTWARE\My Prog', 'MyNameProg'))
Then begin
RegQueryDWordValue(HKLM, 'SOFTWARE\My Prog', 'MyNameProg', RegKey);
If ((RegKey = $1) and (S = '1')) or ((RegKey = $0) and (S = '0'))
Then Result:= True
Else Result:= False;
end
Else Result:=true;
end;[/no]
Автор: boss911
Дата сообщения: 25.04.2009 19:33
Serega0675

Я уже десять раз компилил скрипт, как оригинальный так и слегка подредактированый, но в итоге ничего не поменялось.

Теперь показываю на пальцах:
- [more=нужная мне работа скрипта]
Код: [Files]
Source: C:\My Ptog\My Folder\FOLDER1\*; DestDir: {app}\My Folder\FOLDER1; Check: MyNameProg_B
Source: C:\My Ptog\My Folder\FOLDER0\*; DestDir: {app}\My Folder\FOLDER0; Check: MyNameProg_A

[_Code]
var
RegKey: DWORD;

function MyNameProg_A: Boolean;
begin
RegQueryDWordValue(HKLM, 'SOFTWARE\My Prog', 'MyNameProg', RegKey);
if RegKey <> $1 then
Result:= True else Result:= False;
end;

function MyNameProg_B: Boolean;
begin
RegQueryDWordValue(HKLM, 'SOFTWARE\My Prog', 'MyNameProg', RegKey);
if RegKey <> $0 then
Result:= True else Result:= False;
end;

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071

Предыдущая тема: в очередной раз босудим антивиры?


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.