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

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

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

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

Ветеран


Contributor


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


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

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


немного изменил один из примеров ботвы (теперь без ботвы)
при нажатии на кнопку "отмена" создаётся своя форма с кнопками "Да" и "Нет"
может кому-то (мне однозначно) пригодится

читать дальше »
Код: Выделить весь код
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application
SolidCompression=yes
Compression=lzma/ultra
PrivilegesRequired=none
OutputDir=userdocs:Inno Setup Examples Output

[   code]
var
  NoButton, YesButton: TButton;
  MyExit: TSetupForm;

procedure MyExitMessage();
begin
  MyExit := CreateCustomForm();
  with MyExit do
    begin
      BorderIcons := [];
      Position := poScreenCenter;
      ClientWidth := ScaleX(230);
      ClientHeight := ScaleY(100);
      Caption := ExpandConstant(SetupMessage(msgExitSetupTitle));
      Color := $48c1ca;
    end;

  NoButton := TButton.Create(MyExit);
  with NoButton do
    begin
      Parent := MyExit;
      Left := ScaleX(50);
      Caption := 'Нет';
      Top := ScaleY(60);
      Width := ScaleX(60);
      Height := ScaleY(25);
      ModalResult:= mrNo;
    end;

  YesButton := TButton.Create(MyExit);
    with YesButton do
    begin
      Caption := 'Да';
      Parent := MyExit;
      Left := ScaleX(120);
      Top := ScaleY(60);
      Width := ScaleX(60);
      Height := ScaleY(25);
      ModalResult := mrYes;
    end;
end;


procedure CancelButtonClick(CurPageID: Integer; var Cancel, Confirm: Boolean);
begin
  Confirm := False;

  MyExitMessage();
  if MyExit.ShowModal() = mrNo then
    Cancel := False;
end;


зачем?
читать дальше »

R.i.m.s.k.y.,
оформление в инно - пустая трата времени, головняка много, а толку мало





Последний раз редактировалось Johny777, 11-04-2012 в 15:56.

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

Отправлено: 15:39, 11-04-2012 | #1491



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

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


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


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

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


Цитата Johny777:
только и остаётся к сожалению, тк чтобы добавить функцию какую ты хотел нужно связаться с автором библиотеки. Именно это я тебе советую. Его не трудно найти
или используй родной деинсталл, если это возможно
[UninstallDelete]
Type: filesandordirs; Name: {app} »
почитай из справки:
Эта Директива используется, чтобы предотвратить пользователей от установки новой версии приложения, пока приложение работает, и, чтобы помешать пользователю удаление запущенного приложения. Это указывает имена одного или более именованных мьютексы (несколько семафоров разделяются запятыми), которые Установке и удалению будет проверять при загрузке. Если таковые имеются, Установка/Удаление появится сообщение: "[Установки или удаления] показали, что [Заменяет] выполняется в настоящее время. Пожалуйста, закройте все экземпляры его сейчас, затем нажмите кнопку OK, чтобы продолжить, или Отменить, чтобы прервать работу." Значение может содержать константы.
Я знаю автора isdone, и тут библиотека не причем. Почитай можь поймешь.

Отправлено: 16:24, 11-04-2012 | #1492


Аватара для Johny777

Ветеран


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

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


Цитата sergey3695:
почитай из справки: »
давай подумаем
isdone я не использую и потому ограничен в помощи больше обычного.
Сам не использую его или другие скрипты/библиотеки нацеленные на создание возможности распаковки архивов Инно сатапом, созданных внешними ужималками а не родным встроенным 7-ZIP.
У меня всё работает!
ты же используешь исдан. А это библиотека со скриптом, через который ты к ней обращаешься. Уберём лишнее. Получаем в конечном итоге библиотеку и конфликт который тебе хочется решить
Вывод: Директива AppMutex несовместима с библиотекой или со скриптом-настройкой к библиотеке. Если второе, то совет я тебе дал. Не помогло? Значит обратись к автору библиотеки.
И справку я читал хоть и не всю (не isdone).
Ты лучше перечитай справку к isdone
И последнее . Этот форум не для обсуждения isdone. Для него есть особая ветка на руборде (не в обиду тебе).
PS:
у медали две стороны. Если ты ставишь себе превыше всего более сильное сжатие при помощи isdone, которое не всегда имеет место или не стоит того, то рискуешь потерять что-то другое.

Последний раз редактировалось Johny777, 11-04-2012 в 17:08.


Отправлено: 16:53, 11-04-2012 | #1493


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


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

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


Johny777, я тебе написал не про isdone
[Setup]: AppMutex
Description:
This directive is used to prevent the user from installing new versions of an application while the application is still running, and to prevent the user from uninstalling a running application. It specifies the names of one or more named mutexes (multiple mutexes are separated by commas), which Setup and Uninstall will check for at startup. If any exist, Setup/Uninstall will display the message: "[Setup or Uninstall] has detected that [AppName] is currently running. Please close all instances of it now, then click OK to continue, or Cancel to exit." The value may include constants.

Из справки inno про AppMutex.
Нехотел я объяснять, не люблю много печатать, но придёться. Из справки понятно что один и тот же AppMutex проверяется как и при запуске инсталлятора так и при запуске деинсталлятора.

Последний раз редактировалось sergey3695, 11-04-2012 в 17:18.


Отправлено: 17:12, 11-04-2012 | #1494


Аватара для Johny777

Ветеран


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

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


Цитата sergey3695:
Из справки inno про AppMutex. »
зачем ты мне уже второй раз одно и то же из справки цитируешь
и чем смысл разъяснений справки отличается от моих же слов?
Цитата Johny777:
не даёт пользователю запустить тот же инсталл несколько раз пока он работает »
вот можешь посмотреть работу дерективы в деле на примере более ранней версии моего скрипта
http://sendfile.su/566305

Отправлено: 17:18, 11-04-2012 | #1495


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


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

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


вот скрин
Что тут непонятно?

Отправлено: 17:23, 11-04-2012 | #1496


Аватара для Johny777

Ветеран


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

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


sergey3695,

Промт или гугловский переводчик?
читать дальше »
Цитата sergey3695:
Эта Директива используется, чтобы предотвратить пользователей от установки новой версии приложения, пока приложение работает, и, чтобы помешать пользователю удаление запущенного приложения. Это указывает имена одного или более именованных мьютексы (несколько семафоров разделяются запятыми), которые Установке и удалению будет проверять при загрузке. Если таковые имеются, Установка/Удаление появится сообщение: "[Установки или удаления] показали, что [Заменяет] выполняется в настоящее время. Пожалуйста, закройте все экземпляры его сейчас, затем нажмите кнопку OK, чтобы продолжить, или Отменить, чтобы прервать работу." Значение может содержать константы.
Я знаю автора isdone, и тут библиотека не причем. Почитай можь поймешь. »


вот русская справка.
http://sendfile.su/570136

Отправлено: 18:07, 11-04-2012 | #1497


Аватара для Ivan_009

Ветеран


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

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


Покажите пример наложения картинки на весь экран только не через isgsg.dll..

Отправлено: 18:36, 11-04-2012 | #1498


Аватара для Johny777

Ветеран


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

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


Ivan_009,

1. фоновый рисунок в зависимости от разрешения экрана (разрешения не все. Сделай по аналогии какие надо)
читать дальше »
Код: Выделить весь код
 
[Setup] 
AppName=AppName 
AppVerName=AppVerName 
DefaultDirName={pf}\AppName 

[Files] 
Source: 640.bmp; DestDir: {tmp}; Flags: dontcopy 
Source: 800.bmp; DestDir: {tmp}; Flags: dontcopy 
Source: 1024.bmp; DestDir: {tmp}; Flags: dontcopy 
Source: 1152.bmp; DestDir: {tmp}; Flags: dontcopy 
Source: 1280.bmp; DestDir: {tmp}; Flags: dontcopy 
Source: 1600.bmp; DestDir: {tmp}; Flags: dontcopy 

[  Code] 
function GetDC(HWND: DWord): DWord; 
external 'GetDC@user32.dll stdcall'; 

function GetDeviceCaps(DC: DWord; Index: Integer): Integer; 
external 'GetDeviceCaps@gdi32.dll stdcall'; 

function ReleaseDC(HWND: DWord;DC: DWord): Integer; 
external 'ReleaseDC@user32.dll stdcall'; 

function ShowWindow(hWnd: DWord; nCmdShow: Integer): boolean; 
external 'ShowWindow@user32.dll stdcall'; 

function SetWindowLong(hWnd: DWord; nIndex: Integer; dwNewLong: Longint): Longint; 
external 'SetWindowLongA@user32.dll stdcall'; 

procedure InitializeWizard(); 
var 
bgImage : TBitmapImage; 
bgImageName: String; 
width: integer; 
dc: DWord; 

begin 
bgImage:=TBitmapImage.Create(MainForm) 
bgImage.Align:=alClient 
bgImage.Stretch:=True 
bgImage.Parent:=MainForm 

dc:=GetDC(MainForm.Handle) 
width:=GetDeviceCaps(dc,8) 
ReleaseDC(MainForm.Handle,dc) 

if width <=640 then 
bgImageName:='640.bmp' 

else if width<=800 then 
bgImageName:='800.bmp' 

else if width<=1024 then 
bgImageName:='1024.bmp' 

else if width<=1152 then 
bgImageName:='1152.bmp' 

else if width<=1280 then 
bgImageName:='1280.bmp' 

else 
bgImageName:='1600.bmp' 

ExtractTemporaryFile(bgImageName) 
bgImage.bitmap.LoadFromFile(expandConstant('{tmp}\'+bgImageName)) 

SetWindowLong(MainForm.Handle,-16,$80000000) 
ShowWindow(Mainform.Handle,SW_SHOWMAXIMIZED) 
end;


2. пример Виктора Доброва из папки ...Inno Setup 5\Scripts\Dobrov\BackgroundImage.iss
читать дальше »
Код: Выделить весь код
[Setup]
AppName=Background Image
AppVerName=Background Image
CreateAppDir=false

[Files]
Source: BackgroundImage.bmp; DestDir: embedded; Flags: dontcopy noencryption

[ Code]
function ShowWindow(hWnd, nCmdShow: LongWord): LongWord; external 'ShowWindow@user32.dll stdcall';

Procedure BackgroundOnActivate(Sender: TObject); Begin if WizardForm.Visible then WizardForm.Show End;

Procedure InitializeWizard;
var BackgroundForm: TForm; BackgroundImage: TBitmapImage;
	Begin
BackgroundForm:= TForm.Create(nil)
	BackgroundForm.BorderStyle:= bsNone
	BackgroundForm.OnActivate:= @BackgroundOnActivate;
	ShowWindow(BackgroundForm.Handle, sw_ShowMaximized)  	// фоновое окно на полный экран
BackgroundImage:= TBitmapImage.Create(BackgroundForm)
	BackgroundImage.Align:= alClient
	BackgroundImage.Stretch:= True
ExtractTemporaryFile('BackgroundImage.bmp')
	BackgroundImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\BackgroundImage.bmp'))
	BackgroundImage.Parent:= BackgroundForm
end;
Это сообщение посчитали полезным следующие участники:

Отправлено: 18:58, 11-04-2012 | #1499


Аватара для Ivan_009

Ветеран


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

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


У кого есть isSlideShow v1.03 поделитесь пожалуйста нигде не могу найти..........

Отправлено: 19:13, 11-04-2012 | #1500



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




 
Переход