Имя пользователя:
Пароль:
 | Правила  

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

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

Аватара для 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] - Скачать;


Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах:
Inno Setup [все вопросы] часть 1
Inno Setup [все вопросы] часть 2
Скрипты Inno Setup. Помощь и советы [часть 3]
Скрипты Inno Setup. Помощь и советы [часть 4]

Отправлено: 03:49, 21-05-2012

 

Аватара для Gnom_aka_Lexander

Ветеран


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

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


Цитата Gnom_aka_Lexander:
[Files] Source: {code_GetSpecialPath}\MyProg; DestDir: {code:GetVideoPath}\MyProg »
тут засада. MyProg это файл или папка?
Просто Мое Видео входит в системные файлы папки и система может не дать изменить то, что уже есть. По крайней мере семерка.

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


Отправлено: 13:10, 17-08-2012 | #641



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

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


Аватара для ChVL

Старожил


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

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


Цитата Gnom_aka_Lexander:
это файл или папка? »
Папка.
Но какой-то выход из положения должен быть. Цель тривиальная: положить туда свою папку.

Отправлено: 13:27, 17-08-2012 | #642


Аватара для Gnom_aka_Lexander

Ветеран


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

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


папка с содержимым? Просто вот так:
Код: Выделить весь код
Source: {code_GetSpecialPath}\MyProg; DestDir: {code:GetVideoPath}\MyProg
это будет файл.
А вот так:
Код: Выделить весь код
Source: {code_GetSpecialPath}\MyProg\*; DestDir: {code:GetVideoPath}\MyProg
содержимое папки без подпапок. Если нужно создать пустую папку, то лучше использовать секцию [Dirs] а не файлов.

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


Отправлено: 13:31, 17-08-2012 | #643


Аватара для ChVL

Старожил


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

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


Gnom_aka_Lexander,
То, что надо положить: папка\папка\файл

Отправлено: 13:38, 17-08-2012 | #644


Аватара для Gnom_aka_Lexander

Ветеран


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

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


Код: Выделить весь код
Source: {code_GetSpecialPath}\папка\папка\файл; DestDir: {code:GetVideoPath}\папка\папка

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


Отправлено: 13:40, 17-08-2012 | #645


Аватара для ChVL

Старожил


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

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


Gnom_aka_Lexander,
Естественно, обычная запись.

Отправлено: 13:54, 17-08-2012 | #646


Аватара для ChVL

Старожил


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

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


Кстати, в ХР та же ситуация:



Это подтверждает необходимость уточнять скрипт.

Отправлено: 14:36, 17-08-2012 | #647


Аватара для Gnom_aka_Lexander

Ветеран


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

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


ChVL, тогда вот так:
читать дальше »
Код: Выделить весь код
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={code:GetVideoPath}

[Files]
Source: GetVideoPath.iss; Flags : dontcopy;

[*code]
function SHGetSpecialFolderPath(hwndOwner: HWND; lpszPath: PAnsiChar; nFolder: Integer; fCreate: BOOL): BOOL;
  external 'SHGetSpecialFolderPathA@shell32.dll stdcall';

function GetSpecialPath(CSIDL: Word): string;
var
  s: string;
begin
  SetLength(s, 260);
  if not SHGetSpecialFolderPath(0, PAnsiChar(s), CSIDL, True) then s := '';
  Result:= PAnsiChar(s);
end;

function GetVideoPath(s : string): string;
begin
  Result:= GetSpecialPath($0e);
end;

procedure CurStepChanged(CurStep: TSetupStep);
begin
  if CurStep = ssInstall then
  begin
    ForceDirectories(GetSpecialPath($0e) +'\MyProgName');
    ExtractTemporaryFileEx('GetVideoPath.iss',GetSpecialPath($0e)+'\MyProgName');
  end;
end;
но у меня почему-то распаковывает в папку видео, а не в подпапку MyProgName, которая даже не создается. Видимо, все-таки система запрещает вмешательство, не вижу других причин.

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


Отправлено: 15:12, 17-08-2012 | #648


Аватара для ChVL

Старожил


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

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


Вообще-то решение существует. Встречал несколько программ, у которых эта функция реализована. Но до секции [Сode] не добраться...

Отправлено: 15:49, 17-08-2012 | #649


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

Ветеран


Contributor


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

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


ChVL, так попробуйте. Если система будет выделываться, уберите флаг CSIDL_FLAG_CREATE.
Код: Выделить весь код
[Files]
Source: test.txt; DestDir: {code:GetVideoPath}\test

[code]
const
    MAX_PATH = 260;
    CSIDL_MYVIDEO = $E;
    CSIDL_FLAG_CREATE = $8000;
    SHGFP_TYPE_DEFAULT = $1;

function SHGetFolderPath(hwndOwner: HWND; nFolder: Integer; hToken: THandle; dwFlags: DWORD; pszPath: String): Longint; external 'SHGetFolderPathA@shell32.dll stdcall';

function GetVideoPath(Param: String): String;
begin
    SetLength(Result, MAX_PATH);
    if SHGetFolderPath(0, CSIDL_MYVIDEO or CSIDL_FLAG_CREATE, 0, SHGFP_TYPE_DEFAULT, Result) <> 0 then Result := '';
    Result := CastIntegerToString(CastStringToInteger(Result));
end;
Это сообщение посчитали полезным следующие участники:

Отправлено: 18:53, 17-08-2012 | #650



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Скрипты 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
Inno Setup tradeukraine Вебмастеру 3 13-06-2006 20:39




 
Переход