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

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

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

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

Ветеран


Contributor


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


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

Профиль | Отправить 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

 

Старожил


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

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


Здравствуйте. Как сделать чтоб файл распаковывался в C:\Users\имя пользователя\AppData\Local\ ?. Я ставлю {userappdata}, но он распаковывает в C:\Users\имя пользователя\AppData\Roaming\ . Пробовал еще {userprofile}, но с ним вообще ошибку выдает.

-------
Стремись не к тому, чтобы добиться успеха, а к тому, чтобы твоя жизнь имела смысл.(Альберт Эйнштейн)


Отправлено: 03:22, 26-05-2012 | #61



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

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


Аватара для YURSHAT

Старожил


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

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


Цитата Неадекватный:
А сайт http://krinkels.org/ чему посвящён? »
Создавлся как сайт посвященный Inno Setup, это и является основным направлением

-------
Если я знаю, что знаю мало, я добьюсь того, чтобы знать больше... В.И. Ленин
Krinkels.org - сжатие данных и создание инсталляторов

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

Отправлено: 06:19, 26-05-2012 | #62


Аватара для Gnom_aka_Lexander

Ветеран


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

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


Johny777, честно - лень искать, а вообще - помоему ближе к концу 3-й части или начале 4-й части видел подобные примеры того, как создать собственные параметры для инсталлятора.
Цитата Johny777:
и другой вопрос вопрос »
очень важный. и правильно тебе инсталл говорит - ты не просто укорачиваешь, ты изменяешь путь - текст DirEdit и есть путь установки, и спользован он будет именно так, как там написано, никак иначе.

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


Последний раз редактировалось Gnom_aka_Lexander, 26-05-2012 в 18:16.

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

Отправлено: 15:39, 26-05-2012 | #63


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

Ветеран


Contributor


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

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


Цитата Johny777:
А можно ли в инсталл добавить свои параметры запуска?
как /LANG=English например, но другие. »
Johny777, используй константу {param}. Подробности в справке.
Это сообщение посчитали полезным следующие участники:

Отправлено: 21:54, 26-05-2012 | #64


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


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

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


тогда такой вопрос. в установщике 3 компонента. 1 это программа. остальные 2 скины и темы. как последние 2 компонентов просто скопировать из установщика в папку назначения?

Отправлено: 22:48, 26-05-2012 | #65


Аватара для Ivan_009

Ветеран


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

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


При использовании ISVideo как сделать так чтобы видео отображалось только на странице установки а на финишной закрывалось...Зараннее спасибо...

Отправлено: 23:10, 26-05-2012 | #66


Аватара для Johny777

Ветеран


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

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


Ваня,
насчёт ISVideo не знаю (ты бы скрипт с минимумом файлов дал)
вот тебе пример на основе xvid.dll
http://rghost.ru/private/38303460/fa...06bff122ee5155
делается легко во встроенной процедуре

читать дальше »
Код: Выделить весь код
procedure CurPageChanged(CurPageID: Integer); 
begin

    if CurPageID=wpInstalling then /// если страница установки
    begin
        запускаем видео 
    end;

    if CurPageID=wpFinished then /// на странице завершения 
    begin
       выключаем видео
    end;

end;


______________________________________________________

El Sanchez,
спасибо!
очень привлекательный вариант
но если честно не пойму как правильно использовать
мне нужно для чекбоксов
сделал так:

читать дальше »
Код: Выделить весь код
[Setup]
AppName=Name
AppVerName=Name
DefaultDirName={pf}\Name
compression=none

[ Code]

procedure InitializeWizard;
var
  CheckBox: TNewCheckBox;
  
begin

  CheckBox := TNewCheckBox.Create(WizardForm);
  with CheckBox do
  begin
    Caption := 'Test';
    if ExpandConstant('{param:Check|1}') then Checked := true else Checked := false;
    Parent := WizardForm;
    SetBounds(ScaleX(64), ScaleY(328), ScaleX(97), ScaleY(17));
  end;

end;


даже не компилится
ошибка
читать дальше »


---------------------------
Ошибка компиляции
---------------------------
Строка 18:

Column 42:

Type mismatch.
---------------------------
ОК
---------------------------


можно мне пожалуйста живой пример?

Последний раз редактировалось Johny777, 27-05-2012 в 01:59.

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

Отправлено: 23:58, 26-05-2012 | #67


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

Ветеран


Contributor


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

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


Цитата Johny777:
if ExpandConstant('{param:Check|1}') then Checked := true else Checked := false; »
Johny777, ну и с чем ты сравниваешь результат ExpandConstant? Это ж строка. Нужно так:
Код: Выделить весь код
case ExpandConstant('{param:Check|}') of
  '1': Checked := True;
  '0': Checked := False;
end;
Это сообщение посчитали полезным следующие участники:

Отправлено: 11:09, 27-05-2012 | #68


Аватара для Serkap

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


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

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


Вложения
Тип файла: rar kursk-gd.ru для чата.rar
(33.0 Kb, 13 просмотров)

Serkap Forever & Курский Город Друзей - скрипт писался для чата Bimoid

Для чего его писал я, у меня есть большая локальная сеть которая состоит из несколько подсетей, у каждой подсети есть свой шлюз, а у меня 7 под сетей (7 шлюзов) и также есть доступ через интернет.
Один сервер обрабатывает эти 7 шлюзов и 1 подключение через интернет! На этом сервере стоит сервер чата.

Пользователь запускает этот инсталлятар, инсталлятар определяет автоматически шлюз, пользователь тока указывает свой логин, после этого запись этих данных происходит в 2 INI файла автоматически.
После завершения установки, чат автоматически логинится и запускается с предустановленным профилем. Это хорошо помагает для сис админов в особенности у кого поднят Домен.
не надо бегать, настраивать для каждого пользователя профиль и т.д.!!!! достаточно запустить и указать тока логин зарегистрированого пользователя!!!
awatch.exe - для определение IP адреса или Шлюза!

Код: Выделить весь код
#define MyAppName "Чат КГД"
#define MyAppVersion "05.2012"
#define MyAppPublisher "Курский Город Друзей"
#define MyAppURL "http://www.kursk-gd.ru/"
#define MyAppExeName "Bimoid.exe"

[Setup]
; Serkap Forever & Курский Город Друзей - скрипт писался для чата Bimoid
; Для чего его писал я,  у меня есть большая локальная сеть которая состоит из несколько подсетей, у каждой подсети есть свой шлюз, а у меня 7 под сетей (7 шлюзов) и также есть доступ через интернет.
; Один сервер  обрабатывает эти 7 шлюзов и 1 подключение через интернет! На этом сервере стоит сервер чата.
; Пользователь запускает этот инсталлятар, инсталлятар определяет автоматически шлюз, пользователь тока указывает свой логин, после этого запись этих данных происходит в 2 INI файла автоматически. 
; После завершения установки, чат автоматически логинится и запускается с предустановленным профилем. Это хорошо помагает для сис админов в особенности у кого поднят Домен.
; не надо бегать, настраивать для каждого пользователя профиль и т.д.!!!! достаточно запустить и указать тока логин зарегистрированого пользователя!!!
; awatch.exe - для определение IP адреса или Шлюза!


AppName={#MyAppName}
AppVersion={#MyAppVersion}
AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={pf}\{#MyAppName}
DisableDirPage=yes
DefaultGroupName={#MyAppName}
DisableProgramGroupPage=yes
OutputBaseFilename=chat katk
Compression=lzma
SolidCompression=yes

[Languages]
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"
 
[Files] 
Source: "awatch.exe"; Flags: dontcopy noencryption nocompression
Source: "C:\111\чат\Bimoid.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\111\чат\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs

[INI] 
Filename: "{app}\Bimoid.ini"; Section: "Main"; Flags: uninsdeletesection 
Filename: "{app}\Bimoid.ini"; Section: "Main"; Key: "CurLang"; String: "Russian.oln";
Filename: "{app}\Bimoid.ini"; Section: "Main"; Key: "CurSkin"; String: "SnowySky.osk";
Filename: "{app}\Bimoid.ini"; Section: "Main"; Key: "CurUser"; String: "{code:GetUser|Names}";
Filename: "{app}\Bimoid.ini"; Section: "Main"; Key: "CurServer"; String: "{code:MyConst}";
Filename: "{app}\Bimoid.ini"; Section: "Main"; Key: "DefaultServer"; String: "{code:MyConst}";
Filename: "{app}\Bimoid.ini"; Section: "Main"; Key: "Port"; String: "7023";
Filename: "{app}\Bimoid.ini"; Section: "Main"; Key: "TranspResVer"; String: "0";
Filename: "{app}\Users\User0001\ObimpUser.ini"; Section: "User"; Flags: uninsdeletesection; 
Filename: "{app}\Users\User0001\ObimpUser.ini"; Section: "User"; Key: "Username"; String: "{code:GetUser|Names}";
Filename: "{app}\Users\User0001\ObimpUser.ini"; Section: "User"; Key: "Server"; String: "{code:MyConst}";

[C*o*de] 
var 
 Page: TInputOptionWizardPage; 
 UserPage: TInputQueryWizardPage;
 ip : string; 

Procedure GetIPAdress();
var S: TArrayOfString; i,res : Integer; st : string;
begin
  ExtractTemporaryFile('awatch.exe');
  Exec(ExpandConstant('{tmp}\awatch.exe'), ' /stab tab1.txt 1 ',ExpandConstant('{tmp}'),SW_HIDE,ewWaitUntilTerminated,res);
  LoadStringsFromFile(ExpandConstant('{tmp}\tab1.txt'), S); 
  for i:= 0 to GetArrayLength(S)-1 do begin
    if (Pos(AnsiUpperCase('Default Gateway'), AnsiUpperCase(S[i])) > 0) then begin
      st:=S[i];
      break;
    end;
  end;
  StringChangeEx(st, 'Default Gateway', '', True);
  st:=TrimLeft(st);
  st:=copy(st,0,Length(st)-pos('(',st)-1);
  StringChangeEx(st, '(', '', True);
  st:=TrimRight(st);
  ip:=st;
end; 


function Checked: Boolean; 
begin 
  Result := Page.Values[0]; 
end; 
 
function Checked2: Boolean; 
begin 
  Result := Page.Values[1];  
end; 


function Checked3: Boolean;
begin
  if (Page.Values[1]) then
    // компонент 'helpfiles' выбран
    MsgBox('ok', mbInformation, MB_OK);
end;  

function MyConst(Param: String): String; 
begin 

if Checked then  
GetIPAdress;   
Result := ip; 
    
if (Checked2) then ;     
end;

procedure InitializeWizard(); 
begin 

   UserPage := CreateInputQueryPage(wpWelcome,
    'Информация для входа!', 'Ваш логин:',
    'Укажите логин, который Вам выдал админисратор.');
  UserPage.Add('Name:', False);

  UserPage.Values[0] := GetPreviousData('Name', GetPreviousData('Name', ExpandConstant('{sysuserinfoname}')));
  ip := 'icq.kursk-gd.ru'; // тут указываете свой сервер подключения через интернет

  Page := CreateInputOptionPage(wpSelectTasks,'New Page', 'New Page Description.', 'Please check the box below, then click Next.', True, False); 
  Page.Add('Локальная Сеть КАТК'); 
  Page.Values[0] := True; 
  Page.Add('Если устанавливаете дома'); 
  Page.Values[1] := False; 
end; 
 
function GetUser(Param: String): String;
begin
  if Param = 'Names' then  Result := UserPage.Values[0];
end;

 [Icons]
Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{group}\{cm:ProgramOnTheWeb,{#MyAppName}}"; Filename: "{#MyAppURL}"
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}";
Name: "{userstartup}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"

[Run]
Filename: "{app}\Bimoid.exe"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Parameters: "/id={code:GetUser|Names} /srv={code:MyConst} /port=7023 /pwd=123456789 /savepwd /login"; Flags: nowait

-------
Курский Город Друзей - Serkap Forever


Последний раз редактировалось Serkap, 27-05-2012 в 15:55.

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

Отправлено: 15:10, 27-05-2012 | #69


Ветеран


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

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


Цитата El Sanchez:
Это ж строка. Нужно так: »
Можно проще :
Код: Выделить весь код
  Checked := ExpandConstant('{param:Check|}') = '1';

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

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

Отправлено: 19:23, 27-05-2012 | #70



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




 
Переход