Скрипты Inno Setup. Помощь и советы [часть 6]
-
saurn
Re: Скрипты Inno Setup. Помощь и советы [часть 6]
Люди добрые, подскажите скрипта для распаковки FreeArc'ом? Самый простой без наворотов, чтобы просто распаковал во время установки. Заранее благодарю
-
Shkutu
Re: Скрипты Inno Setup. Помощь и советы [часть 6]
Цитата Shkutu:
Здесь {group} - это же вроде имя папки
Это не имя папки, это путь/назначение.
В Inno это есть так называемая переменная как в Windows.
Например в Windows переменная %TEMP% в Inno это будет {tmp}.
Цитата Shkutu:
А в каких именно программах (общих или конкретного пользователя) здесь не указано
Обычно в общих "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\".
Цитата Антон_Мураткин@vk:
Люди добрые, подскажите скрипта для распаковки FreeArc'ом?
Смотри
Здесь {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]
Цитата Shkutu:
Здесь {group} - это же вроде имя папки
{group} - это в будущем, скажем так, имя папки. Первоначально - это константа, переменная пути. На основе нее инсталятор создает папку с именем, указанным в секции Setup.
Цитата Shkutu:
какая папка при таком задании ярлыка будет родительской {userprograms} или {commonprograms}
{commonprograms}
Цитата Shkutu:
Может, все-таки наоборот - если прав нет, то common будет аналогична user?
Нет.
P.S.
Все константы подробно описаны в справке.
Здесь {group} - это же вроде имя папки
Скрипты Inno Setup. Помощь и советы [часть 6]
{group} - это в будущем, скажем так, имя папки. Первоначально - это константа, переменная пути. На основе нее инсталятор создает папку с именем, указанным в секции Setup.
Цитата Shkutu:
какая папка при таком задании ярлыка будет родительской {userprograms} или {commonprograms}
Скрипты Inno Setup. Помощь и советы [часть 6]
{commonprograms}
Цитата Shkutu:
Может, все-таки наоборот - если прав нет, то common будет аналогична user?
Скрипты Inno Setup. Помощь и советы [часть 6]
Нет.
P.S.
Все константы подробно описаны в справке.
-
Shkutu
-
Shkutu
Re: Скрипты Inno Setup. Помощь и советы [часть 6]
Цитата saurn:
{group} - это в будущем, скажем так, имя папки.
Цитата Shkutu:
Здесь {group} - это же вроде имя папки, которая будет создана в "Пуск"-> "Программы".
saurn, Shkutu, {group} - это полный путь будущей программной группы, общей или персональной - это уже зависит от привилегий установщика, установленных директивой PrivilegesRequired (по умолчанию admin). Установщик с привилегиями admin/poweruser будет автоматом создавать ярлыки в общей программной группе (All Users/ProgramData), lowest - в персональной (профиле пользователя). Также для установщика с админскими привилегиями можно указать создавать ярлыки не в общей группе, а в персональной, для этого предусмотрена директива AlwaysUsePersonalGroup.
Цитата saurn:
{commonprograms}
Цитата Shkutu:
Может, все-таки наоборот - если прав нет, то common будет аналогична user? »
Нет.
saurn, вообще-то, да.
Цитата Nordek:
Например в Windows переменная %TEMP% в Inno это будет {tmp}.
Nordek, вообще-то, нет.
{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]
Цитата El Sanchez:
lowest - в персональной (профиле пользователя).
Смысла не понимаю использования lowest.
Есть некоторые программы которые установленные установщиком Inno. Запуская простым кликом, запускаются без запроса UAC. Но здесь есть одно "Но", порой выбивают ошибку, и всё потому, что не могут прочитать конфигурационный файл находящийся в программной папке. С одной стороны да, то что даже если запроса от UAC не было, и если выбивает ошибку, то их нужно запускать из под администратора. Но с другой стороны, многие думают что нужно давать инсталлятору какие-то привилегии, на самом деле как оказалось административные права не нужны чтобы запустить программу без ошибки.
P.S Данную проблему почти решил и знаю почему это происходит, но пока ещё не реализовал для инсталлятора.
lowest - в персональной (профиле пользователя).
Скрипты Inno Setup. Помощь и советы [часть 6]
Смысла не понимаю использования lowest.
Поясню почему:
Есть некоторые программы которые установленные установщиком Inno. Запуская простым кликом, запускаются без запроса UAC. Но здесь есть одно "Но", порой выбивают ошибку, и всё потому, что не могут прочитать конфигурационный файл находящийся в программной папке. С одной стороны да, то что даже если запроса от UAC не было, и если выбивает ошибку, то их нужно запускать из под администратора. Но с другой стороны, многие думают что нужно давать инсталлятору какие-то привилегии, на самом деле как оказалось административные права не нужны чтобы запустить программу без ошибки.
P.S Данную проблему почти решил и знаю почему это происходит, но пока ещё не реализовал для инсталлятора.
-
saurn
Re: Скрипты Inno Setup. Помощь и советы [часть 6]
Цитата Nordek:
Смысла не понимаю использования lowest.
Nordek, поясняю привилегии установщика:admin - однопользовательская установка; установщик имеет права пользователя из группы Администраторов в системе; установленная программа находится в системной папке Program Files, которой пользуются все; удаление программы только пользователем из группы Администраторов.poweruser - однопользовательская установка; установщик имеет права не ниже прав пользователя из группы Опытные пользователи в системе; установленная программа находится в системной папке Program Files, которой пользуются все; удаление программы только пользователем минимум из группы Опытные пользователи.lowest - многопользовательская установка; установщик имеет права пользователя из группы Пользователи в системе (пользователь из группы Администраторы, запустивший установщик, приравнивается к пользователю из группы Пользователи); установленная программа находится в профиле пользователя, запустившего установку (обычно в %APPDATA%); удаление индивидуально для каждого пользователя (кроме админа, тому все можно грохать).none - однопользовательская/многопользовательская установка; установщик имеет права пользователя, запустившего установку, поэтому логика скрипта должна это учитывать; установленная программа находится в Program Files/профиле в зависимости от пользователя, запустившего установку; удаление аналогично.
Цитата Nordek:
Поясню почему:
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]
El Sanchez,
Цитата El Sanchez:
Например в Windows переменная %TEMP% в Inno это будет {tmp}. »
Nordek, вообще-то, нет.
как же?
мне пришлось вплотную с этим столкнуться, те мне нужны пути для инсталла
и темп в первую очередь
пути к папкам я получаю таким макаром (код Delphi):
Код:
из констант
мне нужны только
CSIDL_DESKTOP
CSIDL_COMMON_DESKTOPDIRECTORY
CSIDL_COMMON_DOCUMENTS
CSIDL_PROGRAM_FILES
CSIDL_PROGRAMS
CSIDL_DESKTOPDIRECTORY
CSIDL_MYDOCUMENTS
CSIDL_PROGRAM_FILESX86
===================
а путь к папке Temp только одним способом. Другого не знаю (код Delphi):
Код:
и этот путь тот же самый, в котором инно создаёт временную папку и именно этот темп откроется если вбить %TEMP% в "Выполнить"
исходники инно по этому поводу я не смотрел, но уверен что пути которыми она заменят константы в строке она берёт именно при помощи вышеупомянутых функций
В общем хотелось бы понять, чтоб потом у меня весь инсалл не рухнул при запуске не из под Админа,
Цитата 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]
Цитата Johny777:
как же?
Просто. Константа {tmp} это путь к временной папке инсталлятора. А системная переменная %TEMP% это временная папка системы. собственно {tmp} - это подпапка внутри %TEMP%. И я совершенно не понимаю, при чем тут Delphi. К инно она относится только тем боком, что данный инструмент скомпилен на Delphi и имеет тот-же язык для секции
как же?
Скрипты Inno Setup. Помощь и советы [часть 6]
Просто. Константа {tmp} это путь к временной папке инсталлятора. А системная переменная %TEMP% это временная папка системы. собственно {tmp} - это подпапка внутри %TEMP%. И я совершенно не понимаю, при чем тут Delphi. К инно она относится только тем боком, что данный инструмент скомпилен на Delphi и имеет тот-же язык для секции
Код: Выделить всё
.
P.S. даже не тот-же, а несколько отличающийся. объектная структура классов построена чуток по другому, чем в дельфи.-
R.i.m.s.k.y.
Re: Скрипты Inno Setup. Помощь и советы [часть 6]
Цитата Johny777:
а путь к папке Temp только одним способом. Другого не знаю (код Delphi):
Johny777, выбирай:
Код:
а путь к папке Temp только одним способом. Другого не знаю (код Delphi):
Скрипты Inno Setup. Помощь и советы [часть 6]
Johny777, выбирай:
Код:
Код: Выделить всё
GetTempDir
GetEnv('TEMP')
ExtractFileDir(ExpandConstant('{tmp}'))