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

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

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

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

Ветеран


Contributor


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


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

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


Изменения
Автор: El Sanchez
Дата: 22-10-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] - Скачать;

  • RegExporter - Фриварная утилита для экспорта реестра и конвертации файлов *.reg и *.ini в инсталляционные скрипты Inno Setup и NSIS.
    Последняя версия: 1.2.0 [23.09.2014] - Скачать;



Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах:

Скрипты Inno Setup. Помощь и советы [часть 6]
Скрипты Inno Setup. Помощь и советы [часть 7]

Отправлено: 08:52, 02-02-2015

 

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


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

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


Привет можыте памагати
как правилина писати код в секции Exec

Код: Выделить весь код
procedure CurStepChanged(CurStep: TSetupStep);
begin
  If NewCheckBox1.Checked then
begin
Exec('{sys}\net.exe, user 1csupport {code:GetUser|Password1}', '/add, /fullname:""1csupport"", /comment:""1csupport"", /active:yes, /expires:never, /passwordchg:no'), '',;
end;
end;
Вот веси код
Скрытый текст


[code]

[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program
DisableProgramGroupPage=yes
UninstallDisplayIcon={app}\MyProg.exe
OutputDir=Output

Код: Выделить весь код
{ RedesignWizardFormBegin } // Don't remove this line!
// Don't modify this section. It is generated automatically.
var
  authentication: TWizardPage;
  PasswordEdit1: TPasswordEdit;
  PasswordEdit2: TPasswordEdit;
  PasswordEdit3: TPasswordEdit;
  PasswordEdit4: TPasswordEdit;
  PasswordEdit5: TPasswordEdit;
  NewCheckBox1: TNewCheckBox;
  NewCheckBox2: TNewCheckBox;
  NewCheckBox3: TNewCheckBox;
  NewCheckBox4: TNewCheckBox;
  NewCheckBox5: TNewCheckBox;

function _NextButtonClick(Sender: TWizardPage): Boolean; forward;

procedure RedesignWizardForm;
begin
  { Creates custom wizard page }
  authentication := CreateCustomPage(wpSelectDir, 'ISCustomPage1_Caption', 'ISCustomPage1_Description');

  { authentication }
  with authentication.Surface do
  begin
    authentication.OnNextButtonClick := @_NextButtonClick;
  end;

  { PasswordEdit1 }
  PasswordEdit1 := TPasswordEdit.Create(WizardForm);
  with PasswordEdit1 do
  begin
    Parent := authentication.Surface;
    Left := ScaleX(240);
    Top := ScaleY(24);
    Width := ScaleX(121);
    Height := ScaleY(21);
    Text := '';
  end;

  { PasswordEdit2 }
  PasswordEdit2 := TPasswordEdit.Create(WizardForm);
  with PasswordEdit2 do
  begin
    Parent := authentication.Surface;
    Left := ScaleX(240);
    Top := ScaleY(64);
    Width := ScaleX(121);
    Height := ScaleY(21);
    Text := '';
  end;

  { PasswordEdit3 }
  PasswordEdit3 := TPasswordEdit.Create(WizardForm);
  with PasswordEdit3 do
  begin
    Parent := authentication.Surface;
    Left := ScaleX(240);
    Top := ScaleY(104);
    Width := ScaleX(121);
    Height := ScaleY(21);
    Text := '';
  end;

  { PasswordEdit4 }
  PasswordEdit4 := TPasswordEdit.Create(WizardForm);
  with PasswordEdit4 do
  begin
    Parent := authentication.Surface;
    Left := ScaleX(240);
    Top := ScaleY(148);
    Width := ScaleX(121);
    Height := ScaleY(21);
    Text := '';
  end;

  { PasswordEdit5 }
  PasswordEdit5 := TPasswordEdit.Create(WizardForm);
  with PasswordEdit5 do
  begin
    Parent := authentication.Surface;
    Left := ScaleX(240);
    Top := ScaleY(192);
    Width := ScaleX(121);
    Height := ScaleY(21);
    Text := '';
  end;

  { NewCheckBox1 }
  NewCheckBox1 := TNewCheckBox.Create(WizardForm);
  with NewCheckBox1 do
  begin
    Parent := authentication.Surface;
    Left := ScaleX(32);
    Top := ScaleY(24);
    Width := ScaleX(193);
    Height := ScaleY(17);
    Caption := '1csupport/1csupport2/1csupport3';
  end;

  { NewCheckBox2 }
  NewCheckBox2 := TNewCheckBox.Create(WizardForm);
  with NewCheckBox2 do
  begin
    Parent := authentication.Surface;
    Left := ScaleX(32);
    Top := ScaleY(64);
    Width := ScaleX(153);
    Height := ScaleY(17);
    Caption := 'Boss';
  end;

  { NewCheckBox3 }
  NewCheckBox3 := TNewCheckBox.Create(WizardForm);
  with NewCheckBox3 do
  begin
    Parent := authentication.Surface;
    Left := ScaleX(32);
    Top := ScaleY(104);
    Width := ScaleX(97);
    Height := ScaleY(17);
    Caption := 'Contabil1';
  end;

  { NewCheckBox4 }
  NewCheckBox4 := TNewCheckBox.Create(WizardForm);
  with NewCheckBox4 do
  begin
    Parent := authentication.Surface;
    Left := ScaleX(32);
    Top := ScaleY(148);
    Width := ScaleX(177);
    Height := ScaleY(17);
    Caption := 'Contabil2';
  end;

  { NewCheckBox5 }
  NewCheckBox5 := TNewCheckBox.Create(WizardForm);
  with NewCheckBox5 do
  begin
    Parent := authentication.Surface;
    Left := ScaleX(32);
    Top := ScaleY(192);
    Width := ScaleX(97);
    Height := ScaleY(17);
    Caption := 'Contabil3';
  end;

  PasswordEdit1.TabOrder := 0;
  PasswordEdit2.TabOrder := 1;
  PasswordEdit3.TabOrder := 2;
  PasswordEdit4.TabOrder := 3;
  PasswordEdit5.TabOrder := 4;
  NewCheckBox1.TabOrder := 5;
  NewCheckBox2.TabOrder := 6;
  NewCheckBox3.TabOrder := 7;
  NewCheckBox4.TabOrder := 8;
  NewCheckBox5.TabOrder := 9;

{ ReservationBegin }
  // This part is for you. Add your specialized code here.

{ ReservationEnd }
end;
// Don't modify this section. It is generated automatically.
{ RedesignWizardFormEnd } // Don't remove this line!

procedure PasswordEdit1Change(Sender: TObject);
begin

end;

procedure InitializeWizard();
begin
  RedesignWizardForm;
end;

function GetUser(Param: String ): String;
begin
  if Param = 'Password1' then
    Result := PasswordEdit1.Text;
begin
  if Param = 'Password2' then
    Result := PasswordEdit1.Text;
begin
  if Param = 'Password3' then
    Result := PasswordEdit1.Text;
begin
  if Param = 'Password4' then
    Result := PasswordEdit1.Text;
begin
  if Param = 'Password5' then
    Result := PasswordEdit1.Text;
end;
end;
end;
end;
end;

function _NextButtonClick(authentication: TWizardPage): Boolean;
var
  ResultCode: Integer;
begin
  if NewCheckBox1.Checked then begin
    if PasswordEdit1.Text = '' then begin
      MsgBox('Введите пароль 1csupport/1csupport2/1csupport3!', mbError, MB_OK);
      Result := False;
      end;
    end;
  if NewCheckBox2.Checked then begin
    if PasswordEdit2.Text = '' then begin
      MsgBox('Введите пароль Boss!', mbError, MB_OK);
      Result := False;
      end;
    end;
  if NewCheckBox3.Checked then begin
    if PasswordEdit3.Text = '' then begin
      MsgBox('Введите пароль Contabil1!', mbError, MB_OK);
      Result := False;
      end;
    end;
  if NewCheckBox4.Checked then begin
    if PasswordEdit4.Text = '' then begin
      MsgBox('Введите пароль Contabil2!', mbError, MB_OK);
      Result := False;
      end;
    end;
  if NewCheckBox5.Checked then begin
    if PasswordEdit5.Text = '' then begin
      MsgBox('Введите пароль Contabil3!', mbError, MB_OK);
      Result := False;
      end;
    end;
  end;

  function GetCheckBox1(): Boolean;
begin
  if Param = 'Password1' then
    Result := PasswordEdit1.Text;
begin
  if Param = 'Password2' then
    Result := PasswordEdit1.Text;
begin
  if Param = 'Password3' then
    Result := PasswordEdit1.Text;
begin
  if Param = 'Password4' then
    Result := PasswordEdit1.Text;
begin
  if Param = 'Password5' then
    Result := PasswordEdit1.Text;
end;
end;
end;
end;
end;

procedure CurStepChanged(CurStep: TSetupStep);
begin
  If NewCheckBox1.Checked then
begin
Exec('{sys}\net.exe, user 1csupport {code:GetUser|Password1}', '/add, /fullname:""1csupport"", /comment:""1csupport"", /active:yes, /expires:never, /passwordchg:no'), '',;
end;

begin
  If NewCheckBox2.Checked then
begin
Exec('{sys}\net.exe', 'user 1csupport {code:GetUser|Password1}', '/add', '/fullname:""1csupport""', '/comment:""1csupport""', '/active:yes', '/expires:never', '/passwordchg:no');
end;

begin
  If NewCheckBox3.Checked then
begin
Exec('{sys}\net.exe', 'user 1csupport {code:GetUser|Password1}', '/add', '/fullname:""1csupport""', '/comment:""1csupport""', '/active:yes', '/expires:never', '/passwordchg:no');
end;

begin
  If NewCheckBox4.Checked then
begin
Exec('{sys}\net.exe', 'user 1csupport {code:GetUser|Password1}', '/add', '/fullname:""1csupport""', '/comment:""1csupport""', '/active:yes', '/expires:never', '/passwordchg:no');
end;

begin
  If NewCheckBox5.Checked then
begin
Exec('{sys}\net.exe', 'user 1csupport {code:GetUser|Password1}', '/add', '/fullname:""1csupport""', '/comment:""1csupport""', '/active:yes', '/expires:never', '/passwordchg:no');
end;
end;
end;
end;
end;
end;

Отправлено: 14:44, 23-09-2016 | #1681



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

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


Забанен


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

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


парни как сделать чтобы при выборе портабле не устанавливалась папка в пуск меню
и соответственно она устанавливалась при установке

Отправлено: 20:55, 01-10-2016 | #1682


Аватара для Dodakaedr

Ветеран


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

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


vadjliss, сделайте так чтобы при портабле не создавались ярлыки.

-------
Inno Setup 5 Ultra Unicode


Отправлено: 20:59, 01-10-2016 | #1683


Аватара для habib2302

Ветеран


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

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


vadjliss, есть такой вариант
Код: Выделить весь код
[Setup]
DisableProgramGroupPage=yes

[Tasks]
Name: group; Description: {cm:CreateStartMenuIcon}; Components: I;

[Icons]
Name: {group}\Soft; Filename: {app}\soft.exe; Tasks: group;

-------
Помог? От "Полезное сообщение" не откажусь!!!


Отправлено: 00:04, 02-10-2016 | #1684


Аватара для Krinkels

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


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

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


Вложения
Тип файла: zip InnoPCRE.zip
(156.1 Kb, 15 просмотров)

Может кому пригодится. Плагин для поддержки регулярных выражений в инно. Во вложении либа + скрипт с несколькими примерами.

-------
Рок моя честь, а моя честь моя жизнь. krinkels.org


Отправлено: 21:42, 05-10-2016 | #1685


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

Ветеран


Contributor


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

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


Цитата Krinkels:
Плагин для поддержки регулярных выражений в инно. »
Krinkels, есть же объект VBScript.RegExp из стандартной vbscript.dll

Отправлено: 09:39, 06-10-2016 | #1686


Аватара для Krinkels

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


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

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


Цитата El Sanchez:
есть же объект VBScript.RegExp из стандартной vbscript.dll »
Кому что удобнее, вообще делал для себя, и ни кого не принуждаю к использованию

-------
Рок моя честь, а моя честь моя жизнь. krinkels.org

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

Отправлено: 12:09, 06-10-2016 | #1687


Аватара для AlekseyPopovv

Старожил


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

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


Всем привет. У меня в инсталляторе содержатся файлы "*.msi" и пока они копируются (не устанавливаются) в папку "Temp" мне нужно удалить папку именно на этапе копирования а не установки. Как сделать?

Отправлено: 05:42, 13-10-2016 | #1688


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


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

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


Всем доброго времени суток. Очень нужна помощь специалистов. По наследству от админа досталась прога на inno setup которая копирует архив с ПК пользователя на сервер. Теперь грядет модернизация серверов и нужно в срочном порядке настроить копирование не на расшаренную папку сервера, а на ftp ресурс. Опыта написания в inno setup нет, так что взываю к помощи
Исходный код копирования:
FileCopy(ExpandConstant('{tmp}\{computername}.zip'), '\\ipсервера\расшаренная папка\' + GetIPAddress() + '.zip', false)
Пробовала сделать вот так, но не копирует:
FileCopy(ExpandConstant('{tmp}\{computername}.zip'), 'ftp://логин:пароль@IPадрес' +\папка'+ GetCommandLineParam('/REG') + '\' + GetIPAddress() + '.zip', false)

Последний раз редактировалось yar_mary, 13-10-2016 в 10:54.


Отправлено: 10:21, 13-10-2016 | #1689


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


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

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


На счёт отправки файла на FTP почитай, что пишут - можно с помощью штатной виндовской программы ftp.exe.

Отправлено: 02:04, 16-10-2016 | #1690



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Скрипты Inno Setup. Помощь и советы [часть 7] El Sanchez Автоматическая установка приложений 2499 02-02-2015 08:59
Скрипты Inno Setup. Помощь и советы [часть 6] El Sanchez Автоматическая установка приложений 2494 10-03-2014 11:51
Скрипты Inno Setup. Помощь и советы [часть 5] El Sanchez Автоматическая установка приложений 1999 28-03-2013 19:09
Скрипты Inno Setup. Помощь и советы [часть 4] El Sanchez Автоматическая установка приложений 2099 22-05-2012 23:16
Скрипты Inno Setup. Помощь и советы [часть 3] Serega Автоматическая установка приложений 3755 26-10-2011 17:58




 
Переход