Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 6]

Закрытая тема
Настройки темы
Скрипты Inno Setup. Помощь и советы [часть 6]

Аватара для El Sanchez

Ветеран


Contributor


Сообщения: 1274
Благодарности: 1030


Конфигурация

Профиль | Отправить PM | Цитировать


Изменения
Автор: El Sanchez
Дата: 16-02-2015
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме
Inno Setup. Прочие вопросы.


Показать/скрыть: Справка, руководство, примеры:
Показать/скрыть: Ссылки на примеры скриптов:
Показать/скрыть: Дополнительные программы для Inno Setup:
  • ISTool - неплохой редактор скриптов Inno Setup.
    Последняя версия: 5.3.0.1 [29.09.2009] - Скачать | зеркало;

  • Inno Script Generator - генератор скриптов Inno Setup. Обладает некоторыми полезными функциями, которых нет ни у самого Inno Setup, ни у ISTool.
    Последняя версия: 1.0.3.1 [23.03.2008] - Скачать | зеркало на русифицированную программу;
    Примечание: Родной сайт www.hisoft2000.de более недоступен, поэтому здесь расположены сторонние ссылки.

  • Inno Setup Form Designer - редактор страниц Inno Setup, можно создавать свои страницы.
    Последняя версия: 2.0.8 [12.11.2006] - Скачать;
    Примечание: Родной сайт http://isfd.kaju74.de/index.php?isfd более недоступен, поэтому здесь расположены сторонние ссылки.

  • Inno Setup GameScript Generator - программа генерирует скрипты для Inno Setup . С помощью GameScript Generator и Inno Setup вы сможете быстро создать простенький инсталляционный пакет для любой игры. В инсталлятор можно встроить музыку, слайдшоу и фоновый рисунок. Для специалистов созданный скрипт, возможно, будет неплохой заготовкой для дальнейшей модернизации;

  • ISSkin - Программа для создания и добавления в инсталлятор скинов. Инструкция.
    Последняя версия: 3.0.0.0 [19.01.2010] - Скачать;

  • ISSJoiner - Программа для объединения нескольких скриптов InnoSetup в один.
    Последняя версия: 3.0 [23.07.2009]

  • Converter - Программа конвертирует reg-файлы в формат *.iss (формат скриптов Inno Setup).
    Последняя версия: 0.1.4 [13.03.2010] - Скачать;


Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах:

Отправлено: 19:06, 28-03-2013

 

Аватара для Gnom_aka_Lexander

Ветеран


Сообщения: 978
Благодарности: 564

Профиль | Сайт | Отправить PM | Цитировать


El Sanchez, Еще можно добавить
ExpandConstant('{%TEMP}')
Вроде так.

-------
Я люблю помогать. Но не путайте: "Помогите мне" и "Сделайте за меня" - это совершенно разные понятия.


Отправлено: 14:45, 26-09-2013 | #1161



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для XXXler

Ветеран


Сообщения: 1073
Благодарности: 194

Профиль | Отправить PM | Цитировать


Цитата Johny777:
пути к папкам я получаю таким макаром (код Delphi): »
все нужные вам константы уже есть в Inno (см. спавку), в коде их можно получить используя ExpandConstant('{some_constant}')

Цитата Johny777:
а путь к папке Temp только одним способом. Другого не знаю (код Delphi): »
опять-же, если хотите использовать именно %TEMP%, его можно получить через константу {%temp} , но настоятельно рекомендуется использовать {tmp} во избежание проблем с существующими/занятыми файлами и необходимостью очистки папки в конце процесса

-------
Исходные коды проектов


Отправлено: 14:48, 26-09-2013 | #1162


Аватара для Johny777

Ветеран


Сообщения: 649
Благодарности: 444

Профиль | Отправить PM | Цитировать


XXXler,
Цитата XXXler:
все нужные вам константы уже есть в Inno (см. спавку) »
не буду смотреть справку по инно , я инно не пользуюсь, пишу свой инстал в RadStudioXE
и там нет ничего готового в плане путей (по крайней мере я пока не видел) и как-то пофиг,
тк мне интереснее самому написать реализацию получения нужных мне путей а не пользоваться встроенными, если б они были
коды в моём предыдущем посте - часть исходников проекта на Delphi
а здесь на форуме стараюсь отвечать на вопросы связанные с кодом, тк кому-то помощь, а мне знания
а иногда и сам спрашиваю, ведь тут хватает людей у которых я хотел бы многому научиться

Gnom_aka_Lexander,
Цитата Gnom_aka_Lexander:
И я совершенно не понимаю, при чем тут Delphi. »
"код на делфи", написал, чтоб никому в голову не взбрело спросить: "почему при компиляции в инно функций из моего поста вылетают ошибки?"

El Sanchez,
Цитата El Sanchez:
выбирай: »
GetEnv = (WinApi) GetEnvironmentVariable
а какую функцию лучше использовать? Мне кажется GetTemPath возвращает то же, что и GetEnvironmentVariable
тк цитирую отсюда http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx
читать дальше »
Код: Выделить весь код
Remarks

The GetTempPath function checks for the existence of environment variables in the following order and uses the first path found:

    The path specified by the TMP environment variable.
    The path specified by the TEMP environment variable.
    The path specified by the USERPROFILE environment variable.
    The Windows directory.

те путь к временной папке мне в какой-то мере гарантирован
и ничего что я использую именно этот путь для хранения временных файлов, там, в папке с уникальным рандомным именем?
к слову рандрмное имя получаю таким макаром:
читать дальше »
Код: Выделить весь код
function GenTempFolserUniqueName(): String;
var
    FSobj: Variant;
begin
    try
        FSobj := CreateOleObject('Scripting.FileSystemObject');
        Result := FSobj.GetTempName;
    except
        Result := 'SourceEngine15_' + IntToStr(GetTickCount());
    end;
end;

Последний раз редактировалось Johny777, 26-09-2013 в 16:09.

Это сообщение посчитали полезным следующие участники:

Отправлено: 16:02, 26-09-2013 | #1163


SHVtYW4=


Сообщения: 3451
Благодарности: 1273

Профиль | Отправить PM | Цитировать


Цитата El Sanchez:
поясняю привилегии установщика: »
Да знаю я эти привилегии, только смысла не вижу применять их, по умолчанию вполне хватит.
Появится смысл тогда когда будет понятно то что описал ниже в примере.
Тем более какие бы ты привилегии не применил, сам установщик всё равно запускается только из под админа.
И то что в конце установке из инсталлятора выполняешь, соответственно и программа запускается из под админа и можно любые настройки менять как хочешь. Но потом, обычным запуском попробуй-ка настройки изменить (опять же пример привёл ниже).

Цитата El Sanchez:
тут либо ошибка сборщика, допустившего расположение конфигурационного файла в месте, недоступном простому обывателю, либо ошибка разработчика программы, не сумевшего заставить свое приложение читать свой же конфигурационный файл. »
Сборщику? Разработчику?
Простой пример c Akelpad

Если нету, то установи Akelpad чтоб убедиться.
Если переключить на то чтоб настройки сохранялись в ini, переключи, потом примени

и тут тебя ждёт большой облом
.
Как видишь ничего не применилось.
Все потому, что надо было непросто запустить, а запустить аж от администратора.
Есть способ чтоб запускать Akelpad обычным способом и чтоб применялись без администратора.
Так что не сборщик, и даже не разработчик в этом не виноват.

-------
09a468a9b4293cd82adf6d6c60a9da82 | Tm9yZGVr
В связи со сменой железа и переходом на LInux с полным отказом от Windows - посещение на форуме будет редким.


Последний раз редактировалось Nordek, 26-09-2013 в 18:12.


Отправлено: 17:44, 26-09-2013 | #1164


Аватара для El Sanchez

Ветеран


Contributor


Сообщения: 1274
Благодарности: 1030

Профиль | Отправить PM | Цитировать


Цитата Johny777:
GetEnv = (WinApi) GetEnvironmentVariable
а какую функцию лучше использовать? Мне кажется GetTemPath возвращает то же, что и GetEnvironmentVariable »
Johny777, (Inno) GetEnv = (WinApi) GetEnvironmentVariable, (Inno) GetTempDir = (WINAPI) GetTempPath. Первую для общего применения, вторую для конкретного (Temp).

Цитата Johny777:
и ничего что я использую именно этот путь для хранения временных файлов, там, в папке с уникальным рандомным именем? »
Johny777, что-то останавливает?

Цитата Johny777:
к слову рандрмное имя получаю таким макаром »
Johny777, можешь использовать GetTempFileName.


Цитата Nordek:
Простой пример c Akelpad »
читать дальше »

Nordek, ну, все правильно. В манифесте приложения указан уровень привилегий asInvoker, означающий, что приложение будет запущено с теми же разрешениями, что и запустивший его процесс. Для системы с UAC запуск такого приложения не является чем-то таким, что требует администраторских прав, поэтому приложение будет запущено с правами обычного пользователя. На скриншоте-же изображен отлуп приложению с правами пользователя при попытке записать что-то в файл, находящегося в системной директории (программной папке AkelPad-а в Program Files). Тут либо ПКМ -> Запуск от имени Администратора, либо наличие работающего файла AkelFiles\AkelAdmin.exe, предназначенного для повышения прав при необходимости записи в защищенные файлы.
P.S. Лирическое отступление

Это сообщение посчитали полезным следующие участники:

Отправлено: 21:37, 26-09-2013 | #1165


SHVtYW4=


Сообщения: 3451
Благодарности: 1273

Профиль | Отправить PM | Цитировать


Цитата El Sanchez:
поэтому приложение будет запущено с правами обычного пользователя. »
Даже и это не совсем так.

Цитата El Sanchez:
Тут либо ПКМ -> Запуск от имени Администратора »
Видишь ли, я тут тоже думал что без ПКМ -> Запуск от имени Администратора не обойтись. А оказалось то оно не так, совсем не так. Это заморочки самой винды и её безопасности. Админ тут вообще не причём.

Цитата El Sanchez:
либо наличие работающего файла AkelFiles\AkelAdmin.exe »
Это тоже не то. Да и вообще не в ту степь полез.

Ну, думайте думайте.
Это как раз будет задача для всех: Как после установки запустить программу простым запуском, менять настройки не прибегая к запуску админа.
А я пока поищу реализации в Inno, может найду.

-------
09a468a9b4293cd82adf6d6c60a9da82 | Tm9yZGVr
В связи со сменой железа и переходом на LInux с полным отказом от Windows - посещение на форуме будет редким.


Последний раз редактировалось Nordek, 27-09-2013 в 10:47.


Отправлено: 10:41, 27-09-2013 | #1166


Аватара для XXXler

Ветеран


Сообщения: 1073
Благодарности: 194

Профиль | Отправить PM | Цитировать


Цитата Nordek:
Видишь ли, я тут тоже думал что без ПКМ -> Запуск от имени Администратора не обойтись. А оказалось то оно не так, совсем не так. Это заморочки самой винды и её безопасности. Админ тут вообще не причём. »
Конкретно в семерке это проблема автоотключения виртуализации при указанном в манифесте приложения RequestedExecutionLevel - до версии с AkelAdmin.exe все работало и сохранялось в %LOCALAPPDATA%\VirtualStore

-------
Исходные коды проектов


Отправлено: 10:58, 27-09-2013 | #1167


Аватара для Dinvin4ester

Старожил


Сообщения: 229
Благодарности: 0

Профиль | Отправить PM | Цитировать


Ребята всем привет . Что делаю не так - http://sendfile.su/873653.
Удалил:
Выбор компонентов
Язык интерфейса:
Русский
Английский
Язык озвучки:
Обновить DirectX
Установить Nvidia PhysX
Установить Microsoft Visual C++ Redist
Установить Games for Windows LIVE
Но они все-равно остались , точнее в само инсталле такое и так далее Помогите пожалуйста .Как их удалить ?

Последний раз редактировалось Dinvin4ester, 28-09-2013 в 23:01.


Отправлено: 22:19, 28-09-2013 | #1168


SHVtYW4=


Сообщения: 3451
Благодарности: 1273

Профиль | Отправить PM | Цитировать


Цитата XXXler:
AkelAdmin.exe все работало и сохранялось в %LOCALAPPDATA%\VirtualStore »
Да забудь ты про AkelAdmin. Можешь любую portable программу (которая запускается из под обычного пользователя не запрашивая адм.прав и имеет рядом конфигурационный файл (в пример AIMP, Opera и обе portable)) засунуть в папку PF на системном диске и увидеть как она себя там будет вести. Но не суть, у меня есть такая для которой при установки мало того что конфиг суётся в PF, так ещё и dll-ки регистрируются (это не говоря о том что вторые настройки помещаются в корень системного диска). Суть одна, запустить подобную программу из под пользователя так чтобы при изменении, настройки записывались в конфиг.
А не в хитрых махинациях с перемещением конфига.

-------
09a468a9b4293cd82adf6d6c60a9da82 | Tm9yZGVr
В связи со сменой железа и переходом на LInux с полным отказом от Windows - посещение на форуме будет редким.


Отправлено: 22:27, 28-09-2013 | #1169


Аватара для audiofeel

Пользователь


Сообщения: 128
Благодарности: 22

Профиль | Отправить PM | Цитировать


Цитата Dinvin4ester:
Ребята всем привет . Что делаю не так - http://sendfile.su/873653. »
держи = http://rghost.ru/49036643
Это сообщение посчитали полезным следующие участники:

Отправлено: 02:25, 29-09-2013 | #1170



Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 6]

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Скрипты Inno Setup. Помощь и советы [часть 5] El Sanchez Автоматическая установка приложений 1999 28-03-2013 19:09
Скрипты Inno Setup. Помощь и советы [часть 4] El Sanchez Автоматическая установка приложений 2099 22-05-2012 23:16
Скрипты Inno Setup. Помощь и советы [часть 3] Serega Автоматическая установка приложений 3755 26-10-2011 17:58
[архив] Скрипты Inno Setup. Помощь и советы [часть 2] Serega Автоматическая установка приложений 2651 08-11-2010 18:34
Скрипты Inno Setup Compiler QAZAK Автоматическая установка приложений 7 15-01-2007 17:59




 
Переход