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

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

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

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

Ветеран


Contributor


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


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

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


Изменения
Автор: Vadikan
Дата: 22-05-2012
Описание: Закрыто
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме
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. Помощь и советы [часть 5]

Отправлено: 18:01, 29-08-2011

 

Аватара для Johny777

Ветеран


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

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


Скажите пожалуйста как переделать
Цитата El Sanchez:
IsStringCyrillic.iss»
Код: Выделить весь код
function IsStringCyrillic(Str: String): Boolean;
var
    objRegExp: Variant;
begin
    try
        objRegExp := CreateOleObject('VBScript.RegExp');
    except
        ShowExceptionMessage;
    end;

    if objRegExp.Test(Str) then
    begin
        objRegExp.Pattern := '[\u0400-\u04FF,\u0500-\u052F,\u2DE0-\u2DFF,\uA640-\uA69F]';
        Result := objRegExp.Execute(Str).Count = 1;
    end;
end;
под
Код: Выделить весь код
 
[code] 
procedure DirEditOnChange(Sender: TObject);
begin
    WizardForm.NextButton.Enabled := TEdit(Sender).Text <> '123';
end;

procedure InitializeWizard();
begin
    WizardForm.DirEdit.OnChange := @DirEditOnChange;
end;
другие 2 "запрета на русские символы в пути"
1. http://forum.ru-board.com/topic.cgi?...84&limit=1&m=2
2. http://forum.oszone.net/post-1891353-1362.html
через WizardForm.DirEdit.OnChange переделать под блокировку кнопки "далее" не получается (включая эту функцию)
Тяму не хватает!
Цель - заблокированная кнопка "Далее" и лейбл с надписью "Кириллица в пути не допустима. Это может привести к ошибкам запуска игры и неправильному отображению элементов интерфейса"
Думаю лейбл и блокировку кнопки я смогу сам потом добавить, а вот функцию...

Последний раз редактировалось Johny777, 29-04-2012 в 21:45.


Отправлено: 21:11, 29-04-2012 | #1731



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

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


Аватара для valyok666

Старожил


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

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


detiedyatosla, я же отвечал на этот вопрос)))
можно короче)
читать дальше »

procedure InitializeWizard();
begin
with WizardForm do begin
Bevel.Hide;
Bevel1.Hide;
end;
end;

-------
Салтыков-Щедрин: "А надо учиться, учиться, учиться"

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

Отправлено: 23:03, 29-04-2012 | #1732


Аватара для alert30

Ветеран


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

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


Есть скрипт, в котором в начальном старте процессе установки, сделать окно по-компактнее (сделать мини)?

Отправлено: 06:33, 30-04-2012 | #1733


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

Ветеран


Contributor


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

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


Цитата Johny777:
Тяму не хватает!
Цель - заблокированная кнопка "Далее" и лейбл с надписью "Кириллица в пути не допустима. Это может привести к ошибкам запуска игры и неправильному отображению элементов интерфейса" »
Johny777, дык, смотри на прототип IsStringCyrillic. На входе строка, на выходе булево значение, другими словами если во входной строке будет хоть один кириллический символ, то функция вернет True. WizardForm.NextButton.Enabled тоже возвращает булев результат, т.е. сделаем, чтобы это свойство зависело от результата IsStringCyrillic.
Код: Выделить весь код
procedure DirEditOnChange(Sender: TObject);
begin
    //как только IsStringCyrillic вернет False, т.е. кириллицей и не пахнет, то...
    WizardForm.NextButton.Enabled := not IsStringCyrillic(TEdit(Sender).Text);
    //с надписью "Кириллица в пути не бла-бла-бла" то же самое, только зависимость от Visible
    MyLabel.Visible := IsStringCyrillic(TEdit(Sender).Text); //либо, чтобы IsStringCyrillic не гонять по второму разу MyLabel.Visible := not WizardForm.NextButton.Enabled, т.е. показать надпись, если кнопка неактивна, а это будет происходить, когда найдена кириллица.
end;
Это сообщение посчитали полезным следующие участники:

Отправлено: 10:50, 30-04-2012 | #1734


Аватара для Johny777

Ветеран


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

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


Цитата El Sanchez:
то функция вернет True »
Спасибо!
а ведь просто оказывается *(тк я понял)
MyLabel.Visible := IsStringCyrillic(TEdit(Sender).Text);
это в итоге MyLabel.Visible := true;
с кнопкой тоже самое, только enabled
У меня же таким макаром работет список компонентов на странице выбора компонентов

только ещё плюс .Checked:=true/false

alert30,
ты имеешь ввиду страницу установки (wpInstalling) ?
через процедуру CurPageChanged можно все окна сделать разными с
различным расположение кнопок, размерами и действиями на них!
Вот здесь под 43 номером 2 варианта http://innoultra.ru/?page_id=18

Последний раз редактировалось Johny777, 30-04-2012 в 16:41.

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

Отправлено: 12:05, 30-04-2012 | #1735


Аватара для alert30

Ветеран


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

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


Johny777, как же я сам не догадался, что у сайта Лександер'а полно FAQ-ов.

Последний раз редактировалось alert30, 30-04-2012 в 12:19.


Отправлено: 12:10, 30-04-2012 | #1736


Аватара для Gnom_aka_Lexander

Ветеран


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

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


alert30, Тут в шапке их тоже полно. Я все брал отсюда и с борды. Все, что нужно - это как следует полазить по темам и архиву - все найдешь. На данный момент, по моему, уже нет ни одного вопроса, который уже не решен.

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

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

Отправлено: 20:18, 30-04-2012 | #1737


Аватара для Johny777

Ветеран


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

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


Извините, что не по теме спрашиваю!
Посоветуйте пожалуйста
насколько важен халфе 2 и эпизодам в купе с порталом (пираткам) бэкап достижений и сохранений?
( подозреваю не все знают, что статус достижений пишется в файл stats.bin в папке /bin где движок лежит. Сохранения соответственно находятся в папке SAVE )

Последний раз редактировалось Johny777, 02-05-2012 в 15:35.


Отправлено: 15:11, 02-05-2012 | #1738


Аватара для R.i.m.s.k.y.

Ветеран


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

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


Johny777, я тебе из своего опыта скажу: вот сделал я дистр проги нужной сугубо мне и раздал всем по сети для собственного удобства, никто и не заметил, кроме одного прошаренного человека который пришел с разборками "кто стер мои настройки в проге без бекапа?"
Так что если ты думаешь что никто не пользуется достижениями в пиратке ХЛ2, ты ошибаешься
Делай бекап!

А стирать не надо, это общий вопрос и ответ на него один: "не умничай и делай!"

-------
Хороший установщик тот, которого не замечаешь
Оформление в инно пустая трата времени: толку мало, головняка много, а ошибок истчо больше!

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

Отправлено: 15:17, 02-05-2012 | #1739


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


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

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


всем привет. вот процесс удаления сделал
читать дальше »
Код: Выделить весь код
#define MyAppName "Uninstall"


[Setup]
AppId=proto15
SourceDir=.
OutputDir=Setup
AppName={#MyAppName}
AppVerName={#MyAppName}
AppVersion={#MyAppName}
CreateAppDir=false
OutputBaseFilename={#MyAppName}
Uninstallable=false

ShowLanguageDialog=auto
LanguageDetectionMethod=uilanguage




[Languages]
Name: ru; MessagesFile: i18n\Russian.isl,i18n\sc_russian.isl
Name: ua; MessagesFile: i18n\Ukrainian-6-5.1.11.isl,i18n\sc_ukrainian.isl



[Files]
Source: {src}\files\*; DestDir: {code:SrcDir}\files\; Flags: ignoreversion recursesubdirs createallsubdirs external; Check: make_copy
Source: {src}\license\*; DestDir: {code:SrcDir}\license\; Flags: ignoreversion recursesubdirs createallsubdirs external; Check: make_copy
Source: dontcopy\check.bat; Flags: dontcopy
Source: dontcopy\checkdb.bat; Flags: dontcopy

[ Code]


////////////////////////////////////////////////////////////////////////
var
    AutoRun: TForm;
    ExitButton, UninstallButton: TButton;
    ResultCode: Integer;
    ISCustomPage1: TWizardPage;
  SuperBackupCheckBox: TNewCheckBox;
  Edit_1: TNewEdit;
  WhereButton: TNewButton;
 PasswordPage: TNewEdit;
  UserVarPass: String;
  filecontent: String;
	ReturnCode: Integer;
//////////////////////////////////////////////////


procedure make_copy_again(Sender: TObject); forward;
procedure ButtonOnClick(Sender: TObject); forward;
/////////////////////////////////////////////////////////////////////
function PUTT(filepath:string):string;
var
S: TArrayOfString;
i : Integer;
begin
if not FileExists(FilePath) then begin MsgBox('Ôàéë íå íàéäåí ' + FilePath, mbError, mb_Ok); Exit;end; // åñëè ôàéëà íåò, âûõîäèì
LoadStringsFromFile(FilePath, S); // çàãðóæàåì ôàéë
result := S[0];
end;

procedure Unstall(Sender: TObject);

begin
  begin
  UserVarPass := PasswordPage.Text;
	ExtractTemporaryFile('check.bat');
   Exec (ExpandConstant ('{tmp}\check.bat'), PasswordPage.Text + ' "' + PUTT(ExpandConstant('{src}\text.txt')) + '"', ExpandConstant ( '{tmp}' ), SW_HIDE, ewWaitUntilTerminated, ReturnCode );
  if ReturnCode = 0 then
		begin
			
		
			
			
			
			begin

  begin
    if SuperBackupCheckBox.Checked = true then
      begin

          MsgBox(ExpandConstant('ntcn'), mbError, MB_OK);

      end
  end;


    begin
        MsgBox(ExpandConstant('qqq'), mbError, MB_OK);
      			
			
			
		end	
		end
    end
	else
		begin
			MsgBox(ExpandConstant('{cm:msgIncorrectPassword}'), mbError, MB_OK);

				  exit;		
		end;
	DeleteFile ( ExpandConstant ('{tmp}\check.bat') );
  end;


  AutoRun.Close;
end;


function make_copy: Boolean;
begin
    Result:=SuperBackupCheckBox.Checked;
end;




procedure make_copy_again (Sender: TObject);
begin
if SuperBackupCheckBox.Checked = false then
  begin
    Edit_1.Enabled:= false;
    Edit_1.visible:= false;
    WhereButton.Enabled:= false;
    WhereButton.visible:= false;
  end
else
  begin
    Edit_1.Enabled:= true;
    Edit_1.visible:= true;
    WhereButton.Enabled:= true;
    WhereButton.visible:= true;
  end;
end;

var
  DataDir: String;

function SrcDir(Param: String): String;
begin
  Result := DataDir;
end;

procedure ButtonOnClick(Sender: TObject);
var
  res: Boolean;
begin
  DataDir := ExpandConstant('{src}');
  res := BrowseForFolder('{cm:ButtonBrowse}', DataDir, True);
  if res then
    begin
      Edit_1.Text := DataDir;
    end;

end;

procedure CreateAutoRun();
begin
    //AutoRun
    AutoRun := TForm.Create(nil);
    with AutoRun do
    begin
        BorderIcons := [];
        Position := poScreenCenter;
        Caption := ExpandConstant('Uninstall');
        ClientWidth := ScaleX(250);
        ClientHeight := ScaleY(250);

    end;
 begin

begin
  PasswordPage := TNewEdit.Create(AutoRun);
  with PasswordPage do
    begin
    Name := 'PasswordPage';
   Parent := AutoRun;

   Left := ScaleX(16);
    Top := ScaleY(24);
    Width := ScaleX(200);
    Height := ScaleY(17);

  end;
    begin
        SuperBackupCheckBox := TNewCheckBox.Create(AutoRun);
  with SuperBackupCheckBox do
  begin
    Name := 'SuperBackupCheckBox';
    Parent := AutoRun;
    Left := ScaleX(16);
    Top := ScaleY(54);
    Width := ScaleX(169);
    Height := ScaleY(17);
    Hint := 'Ñîçäàòü áåêàï';
    Caption := 'Ñîçäàòü áåêàï';
    ShowHint := True;
    OnClick := @make_copy_again;
  end;

  { Edit_1 }
  Edit_1 := TNewEdit.Create(AutoRun);
  with Edit_1 do
  begin
    Name := 'Edit_1';
    Parent := AutoRun;
    Left := ScaleX(16);
    Top := ScaleY(76);
    Width := ScaleX(200);
    Height := ScaleY(21);

    Text := 'C:\';
  end;

  { WhereButton }
  WhereButton := TNewButton.Create(AutoRun);
  with WhereButton do
  begin
    Name := 'WhereButton';
    Parent := AutoRun;
    Left := ScaleX(168);
    Top := ScaleY(110);
    Width := ScaleX(75);
    Height := ScaleY(25);
    Caption := '{cm:ButtonBrowse}';
    OnClick := @ButtonOnClick;
  end;

  SuperBackupCheckBox.TabOrder := 0;
  Edit_1.TabOrder := 1;
  WhereButton.TabOrder := 2;

{ ReservationBegin }


{ ReservationEnd }

end;
Edit_1.visible:=false;
WhereButton.visible:=false;


  AutoRun.Repaint;

   UninstallButton := TButton.Create(AutoRun);
    with UninstallButton do
    begin
        Parent := AutoRun;
        Left := ScaleX(50);
        Top := ScaleY(190);
        Width := ScaleX(70);
        Height := ScaleY(40);
        Cursor := crHand;
        Caption := ExpandConstant('Uninstall');
        OnClick := @Unstall;
    end;

    ExitButton := TButton.Create(AutoRun);
    with ExitButton do
    begin
        Parent := AutoRun;
        Left := ScaleX(150);
        Top := ScaleY(190);
        Width := ScaleX(70);
        Height := ScaleY(40);
        Caption := ExpandConstant('Exit');
        Cursor := crHand;
        ModalResult := mrCancel;
    end;
 end;

  AutoRun.ShowModal;
end;
end;

function InitializeSetup(): Boolean;

begin
  CreateAutoRun();
  Result := False;

 end;


как сделать чтоб в начале был выбор языка? а так же в авторане брались значения перемен(текст.название) из файлов?

Отправлено: 15:43, 02-05-2012 | #1740



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Test ferget Тест-форум 0 24-08-2011 01:25
test ! ! Aaa ! ! Тест-форум 0 23-04-2011 11:29
test Santa aka Snt Тест-форум 0 16-04-2011 22:35
test xolod. Программное обеспечение Linux и FreeBSD 0 19-04-2009 21:03
Test memory KEugeNik Хочу все знать 11 23-11-2003 23:11




 
Переход