Очень часто требуется создать такой установщик, который бы был способен устанавливать программу как в каталог %PROGRAMFILES% (при наличии прав локального администратора), так и в %LOCALAPPDATA% (при отсутствии оных).
В данном HOWTO мы подробно рассмотрим процесс создания такого инсталлятора, приведём примеры работающего кода и опишем подводные камни, которые вам могут встретится.
Создание инсталлятора
- Откройте исходный код сценария установки (файл *.iss) в любом текстовом редакторе или самой среде Inno Setup.
- В блоке [Setup] найдите директиву DefaultDirName и замените её следующую:
DefaultDirName=App Name
PrivilegesRequired=none
- admin (по умолчанию, либо если отсутствует в конфиге) — для работы созданного инсталлятора потребуются администраторские привилегии;
- poweruser — потребуется членство в группе PowerUsers или Администраторы;
- none — запуск возможен от любого пользователя, но если у пользователя есть права администратора, то они будут использоваться;
- lowest — запуск также возможен от любого пользователя, но всегда будет использоваться права обычного пользователя (не рекомендуется).
function GetDefRoot(Param: String): String; begin if not IsAdmin then Result := ExpandConstant(») else Result := ExpandConstant(») end;
Подводные камни
- Не устанавливайте значение директивы PrivilegesRequired в lowest, т.к. в таком случае программа установки будет всегда работать с правами пользователя и установиться в %PROGRAMFILES% не сможет.
- В случае если вы собираетесь устанавливать динамические библиотеки или например шрифты в системные каталоги Windows, то обязательно делайте дополнительную проверку, например:
Source: «dllisxdl.dll»; DestDir: «»; Flags: ignoreversion; Check: not IsAdmin()
Примеры
Готовый пример вы можете найти в нашем git репозитории проекта SRC Repair.
Как исправить ошибку 0x80070666
25 commentaries to post
MegaDocent :
Спасибо, помогло.
Простое решение проблемы, какую папку предложить пользователю, если у него нет прав администратора.
Михаил :
Приветствую. Надеюсь на вас!))) Как сделать возможность выбора из нескольких вариантов папки установки?
У меня есть приложение, которое устанавливается в папку дополнений программы: Сама папка дополнений программы находится здесь — C:UsersAdminAppDataRoamingName
Name — это название программы. В Inno я это прописал так: DefaultDirName=Name
И все отлично работает. Но мое приложение пригодно и для другого софта. Поясню.
Есть комната №1 — Name
Но есть и другие. Например, Name2 и т. д. принадлежащие этой же сети. Вопрос. Есть ли возможность на этапе выбора места установки, предоставить пользователю возможность выбора между предложенными вариантами?
Чтобы он из 4-5 вариантов поставил галочку на нужную ему и мое приложение установилось по выбранному пути. Можно конечно предложить ему вручную искать нужную ему папку, но хотелось бы позаботиться о нем и упростить этот момент.
Сергей :
Доброго времени суток. Скажите пожалуйста сможете ли вы написать код проверки имени пользователя через реестр на стадии инициализации установки? Разъясняю, если имя пользователя на русском языке установка прекращалась с выводом диалогового окна что-то типа установка не возможна, если имя пользователя на английском языке, установка шла обычно. Или какие есть варианты, или подскажите в каком направлении идти. Спасибо.
Сергей :
Про константу и функцию GetUserName(), я знаю, я просто не могу взять значение из данной ветки реестра:
Root: HKLM; SubKey: SOFTWAREMicrosoftWindows NTCurrentVersionProfileListS-1-5-21-2222678472-2290265271-4291998698-1000; ValueType: expandsz; ValueName: ProfileImagePath; ValueData: Users; Flags: uninsdeletevalue uninsdeletekeyifempty так-как S-1-5-21-2222678472-2290265271-4291998698-1000 у каждого компа разный. Я хочу чтобы данная строка была по короче и применима ко всем компам и какой константой можно заменить S-1-5-21-2222678472-2290265271-4291998698-1000
Сергей :
Тогда как я понял проверку имени пользователя через реестр взять нельзя?. Тогда откуда брать проверку если скажем в системе два пользователя, один с правами администратора, другой простой пользователь. Если можно не большой примерчик, откуда брать имя пользователя с правами администратора, и с чем сравнивать (ну например русский шрифт верхнего и нижнего регистра).
Сергей :
Объясню еще раз, нужен код для проверки имени пользователя (на разных компах), если имя пользователя на кириллице установщик выдает окно где будет сказано что установка с таким именем запрещена, если имя пользователя на латинице тогда обычная установка.
Есть такие примеры на проверку через реестр по имени программы, если программа установлена тогда установщик выдает сообщение что прога с таким именем установлена и закрывается (пример есть в справке), так вот хочу типа такого.
Сергей :
Нет я не сказал что проверять нужно все учётные записи. Проверяется учётная запись от имени которой запустили установщик.
function GetUserName(): Boolean;
begin
if GetUserName(ExpandConstant(‘users’,
MsgBox(‘Программа не может быть установлена’
Result:= False;
Подредактируйте где не правильно или дополните, а дальше я уж сам.
Сергей :
Vitaly
Значит реального примера нет?
function CheckUserName(UserName: String): Boolean; begin # Здесь выполняются проверки. Проверять содержимое переменной UserName. # Функция должна возвращать булево: True — верно; False — неверно (русские буквы). end; function InitializeSetup(): Boolean; begin result := CheckUserName(GetUserName()); end;
Пример посимвольной проверки строки на наличие символов на Pascal здесь.
Сергей :
Vitaly
Дааа, Сколько вы мне написали, За это время можно было накидать примерный код, а подправить как нибудь бы смог сам.
Источник: www.easycoding.org
Setup installing как удалить?
Setup.exe — это исполняемый файл (программа) для Windows. . Необходимо запускать исполняемые файлы от проверенных производителей программ, потому что исполняемые файлы могут потенциально изменить настройки компьютера или нанести вред вашему компьютеру.
Что за Setup Wizard?
Это стандартный установщик программ Windows, который активно используется производителями программного обеспечения для распаковки приложений. Тем не менее, у установщика есть слабая сторона. . Окно зараженного Setup Wizard постоянно всплывает на рабочем столе, предлагая якобы «Установить обновления».
Где находится файл setup exe?
Setup.exe находится в подпапке папки Windows для временных файлов, в основном C: Users USERNAME AppData Local Temp WZSE1. TMP . Известные размеры файлов в Windows 10/8/7 / XP составляют 130 584 байта (39% всех вхождений), 104 792 байта и еще 38 вариантов. Файл не является системным файлом Windows.
Как установить файл exe?
Установка файлов exe на Android невозможна
В качестве исполняемых файлов на Android используются APK, а это — принципиально другой код. Поэтому открыть или установить файл exe в Android попросту невозможно. Однако, можно установить приложение, которое эмулирует рабочую среду ОС Windows на телефоне.
Что такое App Setup Files?
Подведем итоги — App Setup Files это файлы, которые являются установочными, и они появляются при установке какой-то программы. Эти файлы должны потом быть удалены, но это происходит не всегда.
Что такое сетап на компьютере?
SETUP[2] – программа установки параметров BIOS, первоначальной настройки компьютера. . Параметры, измененные с помощью программы SETUP, хранятся в специальной энергонезависимой памяти, которая называется CMOS (Complementary Metal-Oxide Semiconductor).
Как открыть файл установки?
CryENGINE SDK является наиболее используемой программой для работы с SETUP файлами.
Как полностью удалить все следы программы?
Чтобы провести поиск и удаление остатков удаленных ранее программ, запустите Soft Organizer и в левой панели выберите пункт «Следы уже удаленных программ». В появившемся окне будут перечислены программы, чьи следы сейчас находятся на вашем компьютере. Нажмите кнопку «Удалить» для завершения.
Как полностью удалить программу в Windows 7?
- Нажмите кнопку Пуск и выберите пункт Панель управления.
- В разделе Программы нажмите кнопку Удалить программу. .
- Выберите программу, которую следует удалить.
- Нажмите Удалить или Удалить/Изменить над списком программ.
Источник: fortune-project.ru
Нужна инструкция создания Мастера установки готовой программы в Inno Setup
Чтобы сделать из установленной программы один установочный файл, вам нужно:
1. Запустить программу Inno Setup, нажать Файл -> Новый и запустить Мастера.
2. На следующей страничке следует указать имя приложения, его автора, официальный сайт и т.п. Если вы создаете инсталлятор для себя, то достаточно ограничиться только именем приложения и версией программы.
3. На третьем этапе следует указать базовую папку для установки. Обычно, этот пункт менять не следует, и программа ставится в Program Files. Также следует указать по умолчанию имя папки.
4. Дальше нужно указать основной exe-файл, который будет запускать ваше установленное приложение, а чуть ниже добавить весь список файлов и компонентов, из которых приложение состоит.
5. На следующем этапе оставьте все установки по умолчанию – это позволит пользователю самостоятельно выбрать, создавать ли ему меню программы в Пуске и значок на Рабочем столе.
6. Если есть файл лицензии и Readme – укажите к ним путь. Вы можете создать свой файл Readme.txt и написать собственное сообщение пользователям или оставить все строки пустыми.
7. Дальше укажите язык, на котором будет работать Мастер установки программы.
8. На следующем этапе вам нужно указать название установочного файла, который будет запускать Мастера установки. Желательно его сделать понятным для пользователя. Укажите место на вашем ПК, куда будет помещен скомпилированный файл. Также вы можете указать ярлык инсталлятора.
9. Дальше оставьте галочку неизменной. Это позволит упростить скрипт установщика.
10. Нажмите Финиш и программа создаст инсталляционный файл по указанным вами параметрам.
Источник: softobase.com