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

Компьютерный форум 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

 

Новый участник


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

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


Добрый день!
Помогите, пожалуйста.
Ситуация следующая: перед установкой делается бекап старых файлов и, если установка была прервана, нужно чтобы файлы из бекапа переносились на старое место.
У меня только частично получилось это сделать. Папка с вложенными папками возвращается обратно и не удаляется. А папка с файлами переносится, но затем удаляется.
Можно ли это как-то сделать, не отказываясь от механизма отката.

Отправлено: 11:05, 03-08-2012 | #511



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

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


Аватара для Johny777

Ветеран


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

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


Leka_651,
Уважаемая!
предоставьте для начала код всего того что Вы описали для наглядности
код в [more][code] здесь весь код [/code][/more]

sergey3695,
рискну предположить, что иконка - внешний файл и лежит на втором диске
если да, то попробуй записать строку секции файлов отвечающей за копирование иконки первой в секции и положить файл на диск рядом с экзешником инсталла

El Sanchez,
а в принципе не нужно
и без обновления рабочего стола по тестам работает на ура
сам попробуй (убрал все ограничения. Не проверяется наличие экзешников и ключа реестра)
нововведение - кнопка "параметры"
http://sendfile.su/642570

Последний раз редактировалось Johny777, 03-08-2012 в 15:29.


Отправлено: 11:23, 03-08-2012 | #512


Аватара для nik1967

Старожил


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

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


Цитата sergey3695:
Никто не знает из-за чего может возникнуть такая ошибка? Кто знает как это исправить?»
Привет! Знает. Тут 2 варианта (больше не думал ):
1. Использовать флаг external в секции [Files] для нужных файлов, ну и положить эти файлы на 2 диск (можно в папку).
2. Запаковать нужные файлы в архив и распаковать куда надо в процессе установки. (Ну и естественно удалить их из секции [Files]. Одно но, у этих файлов не будет атрибутов скрытый, системный).

-------
Если сообщение оказалось полезным для Вас, то помимо спасибо, можно нажать на "Полезное сообщение".


Отправлено: 11:47, 03-08-2012 | #513


Аватара для Johny777

Ветеран


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

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


Цитата nik1967:
Одно но, у этих файлов не будет атрибутов скрытый, системный »
можно через код после распаковки присвоить им эти значения вот таким макаром:
http://forum.oszone.net/post-1721753-2460.html
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:30, 03-08-2012 | #514


Аватара для nik1967

Старожил


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

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


Johny777, ты про
Код: Выделить весь код
SetFileAttributes(PChar(ExpandConstant('{app}\desktop.ini')), FILE_ATTRIBUTE_HIDDEN or FILE_ATTRIBUTE_SYSTEM); //скрываем ини-файл и ставим атрибут системный
Спасибо, не знал. (А в справке не добрался, похоже. Да и не искал, если честно ).

-------
Если сообщение оказалось полезным для Вас, то помимо спасибо, можно нажать на "Полезное сообщение".


Отправлено: 12:34, 03-08-2012 | #515


Аватара для Johny777

Ветеран


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

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


nik1967,
ну тогда вот ещё пример
в отличии от верхнего кода кто автор этого не знаю

"Как проверить, стоит ли атрибут 'Только для чтения' у текстового файла и, если стоит, то убрать его"

Вот два решения:
читать дальше »
Код: Выделить весь код
Решение через FindFirst : 
function SetFileAttributes(lpFileName: string; dwFileAttributes: integer): integer; 
external 'SetFileAttributesA@kernel32.dll stdcall'; 

procedure InitializeWizard(); 
var 
FileName: string; 
SR: TFindRec; 
begin 
FileName:= 'C:\TEMP\aaa.txt'; 
FindFirst(FileName, SR); 

if (SR.Attributes and FILE_ATTRIBUTE_READONLY) = FILE_ATTRIBUTE_READONLY then 
SetFileAttributes(FileName, FILE_ATTRIBUTE_NORMAL); 
FindClose(SR); 
end; 

Решение через GetFileAttributes : 
function GetFileAttributes(lpFileName: string): integer; 
external 'GetFileAttributesA@kernel32.dll stdcall'; 

function SetFileAttributes(lpFileName: string; dwFileAttributes: integer): integer; 
external 'SetFileAttributesA@kernel32.dll stdcall'; 

procedure InitializeWizard(); 
var 
FileName: string; 
begin 
FileName:= 'C:\TEMP\aaa.txt'; 
if (GetFileAttributes(FileName) and FILE_ATTRIBUTE_READONLY) = FILE_ATTRIBUTE_READONLY then 
SetFileAttributes(FileName, FILE_ATTRIBUTE_NORMAL); 
end;


теперь тема атрибутов "скрытый, системный" раскрыта полностью!
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:39, 03-08-2012 | #516


Аватара для nik1967

Старожил


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

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


Johny777, ещё раз спасибо! Я как Плюшкин, всё тяну себе - авось когда и пригодиться .

-------
Если сообщение оказалось полезным для Вас, то помимо спасибо, можно нажать на "Полезное сообщение".


Отправлено: 12:49, 03-08-2012 | #517


Новый участник


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

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


Привожу кусок кода - процедуру CancelButtonClick. Весь код для сборки сетапов занимает несколько файлов. Если нужно могу выложить и их.
читать дальше »
Код: Выделить весь код
procedure CancelButtonClick(CurPageID: Integer; var Cancel, Confirm: Boolean );
var
  backup_name, moduly_name, jinnee_dir :string;
begin
      jinnee_dir := ExpandConstant( '{app}{#JINNEE_DIR}' );
// функция BackupDirName возвращает название папки, в которую делается бекап
      backup_name := BackupDirName('');
      moduly_name := ExpandConstant( '{app}{#CLIENT_DIR}' );
      if DirExists(backup_name) then
        begin
          MoveDir(backup_name+'\Модули', moduly_name);
          MsgBox('переместили модули', mbError, MB_OK) 
          MoveDir(backup_name+'\Jinnee', jinnee_dir);
          MsgBox('переместили джинн', mbError, MB_OK)
       end;
end;


папка Модули содержит вложенные папки и остается, а папка Jinnee содержит только файлы и в итоге удаляется.

Отправлено: 13:06, 03-08-2012 | #518


Аватара для Johny777

Ветеран


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

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


Цитата nik1967:
Я как Плюшкин, всё тяну себе - авось когда и пригодиться »
я тоже
если хочешь дам тебе папку всех кодов какие есть
только в ней порядок сначала навести нужно

Leka_651,
для процедуры отмены попробуй так
читать дальше »
Код: Выделить весь код
[Setup]
AppName=MyAppName
AppVerName=MyAppName
DefaultDirName=MyAppName


[code]
procedure CancelButtonClick(CurPageID: Integer; var Cancel, Confirm: Boolean);
begin
  Confirm:=False; /// убираем подтверждение
  
  sleep(10000);/// заместо этой строки твой процесс бэкапа (копирование)
  
  Cancel := True; /// после копирования наконец таки выходим из инсталла
end;
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:20, 03-08-2012 | #519


Новый участник


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

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


Johny777,
попробовала. все осталось по старому.
получается, что стандартный механизм отката запускается после того как я все вытащила из бекапа. и удаляет, но только частично, не трогая папку Модули. Я не понимаю почему так

а можно сделать так, чтобы мои действия выполнялись после отката?
Это сообщение посчитали полезным следующие участники:

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



Компьютерный форум 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




 
Переход