Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

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

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

Ветеран


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


Конфигурация

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


Изменения
Автор: Serega
Дата: 13-08-2011
Вложения
Тип файла: 7z Inno Setup [все вопросы] часть 1.7z
(1.34 Mb, 900 просмотров)
Тип файла: 7z Inno Setup [все вопросы] часть 2.7z
(3.12 Mb, 798 просмотров)
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме
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] - Скачать;

  • InnoSetup Script Joiner - Программа для объединения нескольких скриптов InnoSetup в один;

  • Converter - Программа конвертирует reg-файлы в формат *.iss (формат скриптов Inno Setup).
    Последняя версия: 0.1.4 [13.03.2010] - Скачать;


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

-------
Книги нужны, чтобы напоминать человеку, что его оригинальные мысли не так уж новы... Авраам Линкольн.


Отправлено: 00:28, 04-11-2010

 

Аватара для Gnom_aka_Lexander

Ветеран


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

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


Цитата Rikill:
Лександер, почему тебе не отправить пм? »
Надоело уже думать за всех, отключил прием сообщений ото всех, кроме тех, кто есть в адресной книге.

TRMK, Пробуй:
читать дальше »
; Скрипт создан через Мастер Inno Setup Script.
; ИСПОЛЬЗУЙТЕ ДОКУМЕНТАЦИЮ ДЛЯ ПОДРОБНОСТЕЙ ИСПОЛЬЗОВАНИЯ INNO SETUP!
; Версию указываеш здесь. проверку по дробной версии делать не стал - и так голова опухла уже.
#define VERSION 1
; Дает возможность ограничить количество запусков на одной машине
; на определенное количество раз. После чего можно запустить инсталл
; только либо следующей версии, либо предидущей.
; Количество запусков указать здесь:
#define COUNT 5

[Setup]
AppName=My Application
AppVersion={#VERSION}
OutputBaseFilename=MiProg
DefaultDirName={pf}\My Application

[code]
var ver,n,m: String;

function InitializeSetup(): Boolean;
begin
if not (RegQueryStringValue(HKLM, 'SOFTWARE\Company\ProgramName','InsNum',n)
and RegQueryStringValue(HKLM, 'SOFTWARE\Company\ProgramName','InsVer',ver))then begin
ver:='{#VERSION}';
RegWriteStringValue(HKLM, 'SOFTWARE\Company\ProgramName','InsNum', '1');
RegWriteStringValue(HKLM, 'SOFTWARE\Company\ProgramName','InsVer', ver);
Result:=True;
end;

if RegQueryStringValue(HKLM, 'SOFTWARE\Company\ProgramName','InsVer',ver)then
if(StrToInt(ver)<>{#VERSION})then begin ver:='{#VERSION}';
RegWriteStringValue(HKLM, 'SOFTWARE\Company\ProgramName','InsNum', '1');
RegWriteStringValue(HKLM, 'SOFTWARE\Company\ProgramName','InsVer', ver);
Result:=True;
end;

if RegQueryStringValue(HKLM, 'SOFTWARE\Company\ProgramName','InsNum',n) then begin
m :=IntToStr(StrToInt(n)+1);
RegWriteStringValue(HKLM, 'SOFTWARE\Company\ProgramName','InsNum', m);
if (StrToInt(n)>{#COUNT}) then if (StrToInt(ver)={#VERSION})then begin
MsgBox( 'Error', mbinformation, mb_ok );
Result:=False;
end else begin
if ((StrToInt(n)<{#COUNT})or(StrToInt(ver)<>{#VERSION}))then Result:=True;
end;
end;
end;
- количество запусков -5, после чего меняеш версию, и имееш еще пять запусков. Ветки реестра замаскируй как следует.
Еще один вариант от Шегората - проще и более оптимальный.

читать дальше »
; Скрипт создан через Мастер Inno Setup Script.
; ИСПОЛЬЗУЙТЕ ДОКУМЕНТАЦИЮ ДЛЯ ПОДРОБНОСТЕЙ ИСПОЛЬЗОВАНИЯ INNO SETUP!
; Версию указываеш здесь. проверку по дробной версии делать не стал - и так голова опухла уже.
#define VERSION 1
; Дает возможность ограничить количество запусков на одной машине
; на определенное количество раз. После чего можно запустить инсталл
; только либо следующей ферсии, либо предидущей.
; Количество запусков указать здесь:
#define COUNT 5
[Setup]
AppName=My Application
AppVersion={#VERSION}
OutputBaseFilename=MiProg
DefaultDirName={pf}\My Application

[code]
var ver,n,m: String;

function InitializeSetup(): Boolean;
var regv, regn, regmod: Cardinal;
begin
if not RegQueryDWordValue(HKLM, 'SOFTWARE\Company\ProgramName', 'InsVer', regv) then regv:=-1;
if not RegQueryDWordValue(HKLM, 'SOFTWARE\Company\ProgramName', 'InsNum', regn) then regn:=-1;

if (regv={#Version})and(regn>={#Count}) then begin
MsgBox( 'Error', mbinformation, mb_ok );
Result:= False;
Exit;
end;

if (regv=-1)or(regv<>{#Version}) then RegWriteDWordValue(HKLM, 'SOFTWARE\Company\ProgramName', 'InsVer', {#Version});
regmod:= regn+1;
if (regv<>{#Version})or(regn=-1) then regmod:=1; RegWriteDWordValue(HKLM, 'SOFTWARE\Company\ProgramName', 'InsNum', regmod);
Result:= True;
end;

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


Последний раз редактировалось Gnom_aka_Lexander, 01-07-2011 в 19:36.

Это сообщение посчитали полезным следующие участники:

Отправлено: 18:03, 01-07-2011 | #2141



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

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


Аватара для Shegorat

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


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

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


TRMK
В дополнение к посту Лександер'а.
Добавил возможность удалить сетапник
читать дальше »
Код: Выделить весь код
; Версию указываеш здесь. проверку по дробной версии делать не стал - и так голова опухла уже.
#define VERSION "1"
; Дает возможность ограничить количество запусков на одной машине
;  на определенное количество раз. После чего можно запустить инсталл
;  только либо следующей ферсии, либо предидущей.
;  Количество запусков указать здесь:
#define COUNT "5"
#define SelfDelete

[Setup]
AppName=My Application
AppVersion={#VERSION}
OutputBaseFilename=MiProg
DefaultDirName={pf}\My Application

[code]
function InitializeSetup(): Boolean;
var regv, regn, regmod: Cardinal; Res: Integer;
begin
  if not RegQueryDWordValue(HKLM, 'SOFTWARE\Company\ProgramName', 'InsVer', regv) then
    regv:=-1;
  if not RegQueryDWordValue(HKLM, 'SOFTWARE\Company\ProgramName', 'InsNum', regn) then
    regn:=-1;

  if (regv={#Version})and(regn>={#Count}) then begin
    Result:= False;
    MsgBox( 'Error', mbinformation, mb_ok);
    #ifdef SelfDelete
      SaveStringToFile(ExpandConstant('{userappdata}\sdel.bat'),
      '@echo off'+#10#13+
      ':trydel'+#10#13+
      'del "'+ExpandConstant('{srcexe}')+'"'+#10#13+
      'if exist "'+ExpandConstant('{srcexe}')+'" goto trydel'+#10#13+
      'del "'+ExpandConstant('{userappdata}\sdel.bat')+'"',
      False);
      Exec(ExpandConstant('{userappdata}\sdel.bat'), '', '', SW_HIDE, ewNoWait, Res);
    #endif
    Exit;
  end;

  if (regv=-1)or(regv<>{#Version}) then
    RegWriteDWordValue(HKLM, 'SOFTWARE\Company\ProgramName', 'InsVer', {#Version});
  regmod:= regn+1;
  if (regv<>{#Version})or(regn=-1) then regmod:=1;
  RegWriteDWordValue(HKLM, 'SOFTWARE\Company\ProgramName', 'InsNum', regmod);
    
  Result:= True;
end;

-------
Как много дел считались невозможными, пока они не были осуществлены.

Это сообщение посчитали полезным следующие участники:

Отправлено: 22:09, 01-07-2011 | #2142


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


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

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


Лександер и Shegorat, спасибо вам большое! Сегодня уже не смогу проверить, завтра только. Проверю, отблагодарю.)

Отправлено: 02:00, 02-07-2011 | #2143


Аватара для No4noylis

Пользователь


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

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


Пожалуйста подскажите как делать такую панель????? http://i057.radikal.ru/1107/6a/4ec1d548c6de.jpg

-------
Нет ничего невозможного...


Отправлено: 10:01, 02-07-2011 | #2144


Аватара для Rikill

Старожил


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

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


No4noylis, статус панель http://narod.ru/disk/7844367001/STS_v.1.0.rar.html

-------
"Око за око приведёт к слепоте мира"- Ганди

Это сообщение посчитали полезным следующие участники:

Отправлено: 12:36, 02-07-2011 | #2145


Аватара для No4noylis

Пользователь


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

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


Цитата Rikill:
No4noylis, статус панель http://narod.ru/disk/7844367001/STS_v.1.0.rar.html »
Не пойму как это к инсталлу прикрутить, нельзя ли пример готового скрипта????? Плиз!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

-------
Нет ничего невозможного...


Отправлено: 13:57, 02-07-2011 | #2146


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


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

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


народ помогите вот я запаковал нужные файлы в FreeArc у меня получилось так название файла .arc потом поставил в скрипт код этот и получаеться я рядом с инстралятором бросай этот файл который запаковал и он его распаковывает а как мне сделать чтобы скрип запаковал этот файл например вот так game-1.bin и потом распаковал?

Отправлено: 14:30, 02-07-2011 | #2147


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


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

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


Цитата Shegorat:
TRMK
В дополнение к посту Лександер'а.
Добавил возможность удалить сетапник »
Все работает на ура! Спасибо большое!
Еще вопрос созрел: А можно сделать так, чтобы установщик уничтожался или не запускался не зависимо от того, сколько раз он на определенном компе устанавливался, чтобы его лимит установок был определенное кол-во раз и все, потом он не мог запускаться? Или это уже не решаемо?

Отправлено: 19:47, 02-07-2011 | #2148


Аватара для Gnom_aka_Lexander

Ветеран


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

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


Цитата TRMK:
А можно сделать так, чтобы установщик уничтожался или не запускался не зависимо от того, сколько раз он на определенном компе устанавливался, чтобы его лимит установок был определенное кол-во раз и все, потом он не мог запускаться? Или это уже не решаемо? »
Я так понял, что ты хочеш ограничить количество установок самого инсталла, не зависимо от компьютера? Теоретически, я преимерно представляю ,как такое сделать. Вот с реализацией... Тут нужны настоящие знатоки программирования... Варианты - либо инсталл при каждой установке пачит сам себя, не знаю, насколько это возможно. Либо он несет в себе набор для компиляции и уничтожает сам себя при каждой установки, в процессе которой компилится новый инсталл, со счетчиком оставшихся запусков на один меньше. Но подозреваю, что это оооочень геморойно.

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


Отправлено: 20:15, 02-07-2011 | #2149


Аватара для Shegorat

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


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

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


Цитата Лександер:
Я так понял, что ты хочеш ограничить количество установок самого инсталла, не зависимо от компьютера? Теоретически, я преимерно представляю ,как такое сделать. Вот с реализацией... Тут нужны настоящие знатоки программирования... Варианты - либо инсталл при каждой установке пачит сам себя, не знаю, насколько это возможно. Либо он несет в себе набор для компиляции и уничтожает сам себя при каждой установки, в процессе которой компилится новый инсталл, со счетчиком оставшихся запусков на один меньше. Но подозреваю, что это оооочень геморойно. »
Первое возможно только если инсталлятор находится на жд либо на флешке, т.е там где он может себя перезаписать, точнее добавить часть данных в конец собственного файла. Второе очень геморройно, хотя и возможно, да и добавит к размеру инсталлятора десяток мегабайт, но опять таки только это возможно там где он может перезаписать файл.

-------
Как много дел считались невозможными, пока они не были осуществлены.


Отправлено: 20:34, 02-07-2011 | #2150



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Утилиты - [addon] Inno Setup CrOsP Наборы обновлений для Windows XP/2003/Windows 7 33 11-05-2011 16:03
[архив] Скрипты Inno Setup. Помощь и советы [часть 2] Serega Автоматическая установка приложений 2651 08-11-2010 18:34
Inno Setup 5.3.6 OSZone Software Новости программного обеспечения 0 15-11-2009 17:30
Скрипты Inno Setup Compiler QAZAK Автоматическая установка приложений 7 15-01-2007 17:59
Inno Setup tradeukraine Вебмастеру 3 13-06-2006 20:39




 
Переход