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

Ответить
 • Просмотры: 42
Аватара пользователя
Gnom_aka_Lexander

Re: Скрипты Inno Setup. Помощь и советы [часть 6]

Сообщение Gnom_aka_Lexander »

R.i.m.s.k.y., мемо вроде как не поддерживает РТФ-форматирования напрямую. а вот в ричэдит загрузить рич-текст удается, насколько я помню, только таким способом:



Код:

Код: Выделить всё

    LoadStringFromFile(ExpandConstant('{tmp}\{#SetupSetting("LicenseFile")}'),S1);
    Lines.Text := S1;

S1 : AnsiString;

Хотя, вспомнил, таким способом я как раз таки грузил рич-текст туда, где не поддерживается рич-форматирование.
Аватара пользователя
elmariacci

Re: Скрипты Inno Setup. Помощь и советы [часть 6]

Сообщение elmariacci »

Цитата Johny777:



пути к папкам я получаю таким макаром (код Delphi):
Скрипты Inno Setup. Помощь и советы [часть 6]




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




Цитата Johny777:



а путь к папке Temp только одним способом. Другого не знаю (код Delphi):
Скрипты Inno Setup. Помощь и советы [часть 6]




опять-же, если хотите использовать именно %TEMP%, его можно получить через константу {%temp} , но настоятельно рекомендуется использовать {tmp} во избежание проблем с существующими/занятыми файлами и необходимостью очистки папки в конце процесса
Аватара пользователя
saurn

Re: Скрипты Inno Setup. Помощь и советы [часть 6]

Сообщение saurn »

XXXler,


Цитата XXXler:



все нужные вам константы уже есть в Inno (см. спавку)
Скрипты Inno Setup. Помощь и советы [часть 6]




не буду смотреть справку по инно Изображение , я инно не пользуюсь, пишу свой инстал в RadStudioXE

и там нет ничего готового в плане путей (по крайней мере я пока не видел) и как-то пофиг,

тк мне интереснее самому написать реализацию получения нужных мне путей а не пользоваться встроенными, если б они были

коды в моём предыдущем посте - часть исходников проекта на Delphi

а здесь на форуме стараюсь отвечать на вопросы связанные с кодом, тк кому-то помощь, а мне знания

а иногда и сам спрашиваю, ведь тут хватает людей у которых я хотел бы многому научиться



Gnom_aka_Lexander,


Цитата Gnom_aka_Lexander:



И я совершенно не понимаю, при чем тут Delphi.
Скрипты Inno Setup. Помощь и советы [часть 6]




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



El Sanchez,


Цитата El Sanchez:



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




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;
Аватара пользователя
elmariacci

Re: Скрипты Inno Setup. Помощь и советы [часть 6]

Сообщение elmariacci »

Цитата El Sanchez:



поясняю привилегии установщика:
Скрипты Inno Setup. Помощь и советы [часть 6]




Да знаю я эти привилегии, только смысла не вижу применять их, по умолчанию вполне хватит.

Появится смысл тогда когда будет понятно то что описал ниже в примере.

Тем более какие бы ты привилегии не применил, сам установщик всё равно запускается только из под админа.

И то что в конце установке из инсталлятора выполняешь, соответственно и программа запускается из под админа и можно любые настройки менять как хочешь. Но потом, обычным запуском попробуй-ка настройки изменить (опять же пример привёл ниже).




Цитата El Sanchez:



тут либо ошибка сборщика, допустившего расположение конфигурационного файла в месте, недоступном простому обывателю, либо ошибка разработчика программы, не сумевшего заставить свое приложение читать свой же конфигурационный файл.
Скрипты Inno Setup. Помощь и советы [часть 6]




Сборщику? Разработчику?


Простой пример c Akelpad




Если нету, то установи Akelpad чтоб убедиться.

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



и тут тебя ждёт большой облом

.

Как видишь ничего не применилось.

Все потому, что надо было непросто запустить, а запустить аж от администратора.

Есть способ чтоб запускать Akelpad обычным способом и чтоб применялись без администратора.

Так что не сборщик, и даже не разработчик в этом не виноват.
Аватара пользователя
R.i.m.s.k.y.

Re: Скрипты Inno Setup. Помощь и советы [часть 6]

Сообщение R.i.m.s.k.y. »

Цитата Johny777:



GetEnv = (WinApi) GetEnvironmentVariable

а какую функцию лучше использовать? Мне кажется GetTemPath возвращает то же, что и GetEnvironmentVariable
Скрипты Inno Setup. Помощь и советы [часть 6]




Johny777, (Inno) GetEnv = (WinApi) GetEnvironmentVariable, (Inno) GetTempDir = (WINAPI) GetTempPath. Первую для общего применения, вторую для конкретного (Temp).




Цитата Johny777:



и ничего что я использую именно этот путь для хранения временных файлов, там, в папке с уникальным рандомным именем?
Скрипты Inno Setup. Помощь и советы [часть 6]




Johny777, что-то останавливает?




Цитата Johny777:



к слову рандрмное имя получаю таким макаром
Скрипты Inno Setup. Помощь и советы [часть 6]




Johny777, можешь использовать
GetTempFileName
.






Цитата Nordek:



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





читать дальше »




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

P.S.
Скрипты Inno Setup. Помощь и советы [часть 5]
Аватара пользователя
R.i.m.s.k.y.

Re: Скрипты Inno Setup. Помощь и советы [часть 6]

Сообщение R.i.m.s.k.y. »

Цитата El Sanchez:



поэтому приложение будет запущено с правами обычного пользователя.
Скрипты Inno Setup. Помощь и советы [часть 6]




Даже и это не совсем так.




Цитата El Sanchez:



Тут либо ПКМ -> Запуск от имени Администратора
Скрипты Inno Setup. Помощь и советы [часть 6]




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




Цитата El Sanchez:



либо наличие работающего файла AkelFiles\AkelAdmin.exe
Скрипты Inno Setup. Помощь и советы [часть 6]




Это тоже не то. Да и вообще не в ту степь полез.



Ну, думайте думайте.

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

А я пока поищу реализации в Inno, может найду.
Аватара пользователя
Gnom_aka_Lexander

Re: Скрипты Inno Setup. Помощь и советы [часть 6]

Сообщение Gnom_aka_Lexander »

Цитата Nordek:



Видишь ли, я тут тоже думал что без ПКМ -> Запуск от имени Администратора не обойтись. А оказалось то оно не так, совсем не так. Это заморочки самой винды и её безопасности. Админ тут вообще не причём.
Скрипты Inno Setup. Помощь и советы [часть 6]




Конкретно в семерке это проблема автоотключения виртуализации при указанном в манифесте приложения RequestedExecutionLevel - до версии с AkelAdmin.exe все работало и сохранялось в %LOCALAPPDATA%\VirtualStore
Аватара пользователя
elmariacci

Re: Скрипты Inno Setup. Помощь и советы [часть 6]

Сообщение elmariacci »

Ребята всем привет . Что делаю не так -
http://sendfile.su/873653
.

Удалил:

Выбор компонентов

Язык интерфейса:

Русский

Английский

Язык озвучки:

Обновить DirectX

Установить Nvidia PhysX

Установить Microsoft Visual C++ Redist

Установить Games for Windows LIVE

Но они все-равно остались , точнее в само инсталле такое и так далее
Цитата:



http://i57.fastpic.ru/big/2013/0928/...4bbc56de9a.png




Помогите пожалуйста .Как их удалить ?
Аватара пользователя
R.i.m.s.k.y.

Re: Скрипты Inno Setup. Помощь и советы [часть 6]

Сообщение R.i.m.s.k.y. »

Цитата XXXler:



AkelAdmin.exe все работало и сохранялось в %LOCALAPPDATA%\VirtualStore
Скрипты Inno Setup. Помощь и советы [часть 6]




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

А не в хитрых махинациях с перемещением конфига.
Ответить

Вернуться в «Автоматическая установка приложений»