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

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

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

Сообщение saurn »

Люди добрые, подскажите скрипта для распаковки FreeArc'ом? Самый простой без наворотов, чтобы просто распаковал во время установки. Заранее благодарю
Аватара пользователя
Shkutu

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

Сообщение Shkutu »

Цитата Shkutu:



Здесь {group} - это же вроде имя папки
Скрипты Inno Setup. Помощь и советы [часть 6]




Это не имя папки, это путь/назначение.

В Inno это есть так называемая переменная как в Windows.

Например в Windows переменная %TEMP% в Inno это будет {tmp}.




Цитата Shkutu:



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




Обычно в общих "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\".




Цитата Антон_Мураткин@vk:



Люди добрые, подскажите скрипта для распаковки FreeArc'ом?
Скрипты Inno Setup. Помощь и советы [часть 6]




Смотри
здесь
.
Аватара пользователя
saurn

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

Сообщение saurn »

Цитата Shkutu:



Здесь {group} - это же вроде имя папки
Скрипты Inno Setup. Помощь и советы [часть 6]




{group} - это в будущем, скажем так, имя папки. Первоначально - это константа, переменная пути. На основе нее инсталятор создает папку с именем, указанным в секции Setup.


Цитата Shkutu:



какая папка при таком задании ярлыка будет родительской {userprograms} или {commonprograms}
Скрипты Inno Setup. Помощь и советы [часть 6]




{commonprograms}


Цитата Shkutu:



Может, все-таки наоборот - если прав нет, то common будет аналогична user?
Скрипты Inno Setup. Помощь и советы [часть 6]




Нет.



P.S.

Все константы подробно описаны в справке.
Аватара пользователя
Shkutu

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

Сообщение Shkutu »

saurn, благодарю. UpdateReadyMemo - то, что нужно Изображение
Аватара пользователя
Shkutu

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

Сообщение Shkutu »

Цитата saurn:



{group} - это в будущем, скажем так, имя папки.
Скрипты Inno Setup. Помощь и советы [часть 6]





Цитата Shkutu:



Здесь {group} - это же вроде имя папки, которая будет создана в "Пуск"-> "Программы".
Скрипты Inno Setup. Помощь и советы [часть 6]




saurn, Shkutu, {group} - это полный путь будущей программной группы, общей или персональной - это уже зависит от привилегий установщика, установленных директивой PrivilegesRequired (по умолчанию admin). Установщик с привилегиями admin/poweruser будет автоматом создавать ярлыки в общей программной группе (All Users/ProgramData), lowest - в персональной (профиле пользователя). Также для установщика с админскими привилегиями можно указать создавать ярлыки не в общей группе, а в персональной, для этого предусмотрена директива AlwaysUsePersonalGroup.




Цитата saurn:



{commonprograms}

Цитата Shkutu:

Может, все-таки наоборот - если прав нет, то common будет аналогична user? »

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




saurn, вообще-то, да.




Цитата Nordek:



Например в Windows переменная %TEMP% в Inno это будет {tmp}.
Скрипты Inno Setup. Помощь и советы [часть 6]




Nordek, вообще-то, нет.
Аватара пользователя
nik1967

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

Сообщение nik1967 »

Цитата El Sanchez:



lowest - в персональной (профиле пользователя).
Скрипты Inno Setup. Помощь и советы [часть 6]




Смысла не понимаю использования lowest.


Поясню почему:


Есть некоторые программы которые установленные установщиком Inno. Запуская простым кликом, запускаются без запроса UAC. Но здесь есть одно "Но", порой выбивают ошибку, и всё потому, что не могут прочитать конфигурационный файл находящийся в программной папке. С одной стороны да, то что даже если запроса от UAC не было, и если выбивает ошибку, то их нужно запускать из под администратора. Но с другой стороны, многие думают что нужно давать инсталлятору какие-то привилегии, на самом деле как оказалось административные права не нужны чтобы запустить программу без ошибки.



P.S Данную проблему почти решил и знаю почему это происходит, но пока ещё не реализовал для инсталлятора.
Аватара пользователя
saurn

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

Сообщение saurn »

Цитата Nordek:



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




Nordek, поясняю привилегии установщика:admin - однопользовательская установка; установщик имеет права пользователя из группы Администраторов в системе; установленная программа находится в системной папке Program Files, которой пользуются все; удаление программы только пользователем из группы Администраторов.poweruser - однопользовательская установка; установщик имеет права не ниже прав пользователя из группы Опытные пользователи в системе; установленная программа находится в системной папке Program Files, которой пользуются все; удаление программы только пользователем минимум из группы Опытные пользователи.lowest - многопользовательская установка; установщик имеет права пользователя из группы Пользователи в системе (пользователь из группы Администраторы, запустивший установщик, приравнивается к пользователю из группы Пользователи); установленная программа находится в профиле пользователя, запустившего установку (обычно в %APPDATA%); удаление индивидуально для каждого пользователя (кроме админа, тому все можно грохать).none - однопользовательская/многопользовательская установка; установщик имеет права пользователя, запустившего установку, поэтому логика скрипта должна это учитывать; установленная программа находится в Program Files/профиле в зависимости от пользователя, запустившего установку; удаление аналогично.


Цитата Nordek:



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





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






Nordek, тут либо ошибка сборщика, допустившего расположение конфигурационного файла в месте, недоступном простому обывателю, либо ошибка разработчика программы, не сумевшего заставить свое приложение читать свой же конфигурационный файл.
Аватара пользователя
Shkutu

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

Сообщение Shkutu »

El Sanchez,


Цитата El Sanchez:



Например в Windows переменная %TEMP% в Inno это будет {tmp}. »

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




как же?

мне пришлось вплотную с этим столкнуться, те мне нужны пути для инсталла

и темп в первую очередь



пути к папкам я получаю таким макаром (код Delphi):


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




Код:

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

function GetSpecialFolderPath(const csidl: Integer): String;
var
    Buff: array[ 0..MAX_PATH] of Char;
begin
    if SHGetSpecialFolderPath(0, Buff, csidl, False) then Result := Buff;
end;





http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx


из констант

http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx


мне нужны только

CSIDL_DESKTOP

CSIDL_COMMON_DESKTOPDIRECTORY

CSIDL_COMMON_DOCUMENTS

CSIDL_PROGRAM_FILES

CSIDL_PROGRAMS

CSIDL_DESKTOPDIRECTORY

CSIDL_MYDOCUMENTS

CSIDL_PROGRAM_FILESX86



===================



а путь к папке Temp только одним способом. Другого не знаю (код Delphi):


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




Код:

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

function GetTemp(): String;
var
    Buff: array [0..MAX_PATH] of Char;
begin
    if GetTempPath(Length(Buff), Buff) > 0 then Result := Buff;
end;





http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx


и этот путь тот же самый, в котором инно создаёт временную папку и именно этот темп откроется если вбить %TEMP% в "Выполнить"

исходники инно по этому поводу я не смотрел, но уверен что пути которыми она заменят константы в строке она берёт именно при помощи вышеупомянутых функций



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

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

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

Цитата Johny777:



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




Просто. Константа {tmp} это путь к временной папке инсталлятора. А системная переменная %TEMP% это временная папка системы. собственно {tmp} - это подпапка внутри %TEMP%. И я совершенно не понимаю, при чем тут Delphi. К инно она относится только тем боком, что данный инструмент скомпилен на Delphi и имеет тот-же язык для секции

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

.

P.S. даже не тот-же, а несколько отличающийся. объектная структура классов построена чуток по другому, чем в дельфи.
Аватара пользователя
R.i.m.s.k.y.

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

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

Цитата Johny777:



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




Johny777, выбирай:



Код:

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

GetTempDir
GetEnv('TEMP')
ExtractFileDir(ExpandConstant('{tmp}'))
Ответить

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