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

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

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

Ветеран


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


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

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


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

 

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

Ветеран


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

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


Цитата El Sanchez:
{code:ExtractFileName|{app}} »
что за конструкция с вертикальной палочкой?

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


Отправлено: 13:19, 09-09-2011 | #3021



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

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


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

Ветеран


Contributor


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

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


Цитата R.i.m.s.k.y.:
что за конструкция с вертикальной палочкой? »
Help -> Pascal Scripting -> Scripted Constants
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:23, 09-09-2011 | #3022


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


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

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


Здравствуйте.
Хочу представить вам свою наработку:


EXArchives.dll v.1.0b от VinTagE
Описание:
* Это распаковка архивов.
* 1 прогресс бар показывает распаковку архивов
* 2 прогресс бар показывает обработку архивов
* Сделал плавный индикатор (2 прогресс бар) обработки архивов
* Версия EXArchives.dll v.1.0b
Автор - VinTagE
-----------
Скачать
-----------


P.S.: Прошу протестировать и если найдёте какие нибудь ошибки, сообщите мне.
Спасибо за внимание

Последний раз редактировалось VinTagE, 09-09-2011 в 19:37.

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

Отправлено: 19:32, 09-09-2011 | #3023


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


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

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


Добрый день.
Есть вопрос:
Программа при работе создает ветку в реестре, нужно во время деинсталляции программы удалять ветку с ключами внутри.
Как это можно сделать средствами Inno setup?
Спасибо.

Отправлено: 20:11, 09-09-2011 | #3024


Аватара для Habetdin


Автор проектов


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

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


Jim_Di_Griz, используйте флаг uninsdeletekey:
Код: Выделить весь код
[Registry]
Root: HKLM; SubKey: Software\My Program; Flags: uninsdeletekey

-------
Рекомендую: $25 на тест виртуального сервера (VPS) за регистрацию по ссылке

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

Отправлено: 20:23, 09-09-2011 | #3025


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


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

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


Цитата:
Jim_Di_Griz, используйте флаг uninsdeletekey:
Спасибо, все работает.

Отправлено: 21:21, 09-09-2011 | #3026


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


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

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


Здравствуйте, помогите решить задачу, нужно заменить при установке в уже имеющемся файле .xml рандомное значение между двумя строками (Ник)
<Nick type="string">ТутЛюбойНик</Nick>. Как это можно реализовать. Спасибо.

Отправлено: 21:59, 09-09-2011 | #3027


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


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

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


Помогите плиз прикрутить распаковку arc к скрипту...
http://rghost.ru/21107801
Пробовал брать скрипт на сайте freearc, использовать IssDone, но везде большие скрипты, и на определённых местах выдаёт ошибки. Замахался с ними. Возможно есть простой скрипт?

Отправлено: 19:28, 10-09-2011 | #3028


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


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

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


[Types]
; переменная для цикла
#define l

; итак: пишем подпрограмму, которая будет делать все что нам нужно l раз
#sub AddDescription
Name: {code:gets|{#l}}; Description: {code:gets|{#l}};
#endsub

; создаем цикл с вызовом нашей подпрограммы
#for {l = 1; l < 3; l++} AddDescription

[Components]
Name: n1; Description: gdsgdg; types: {code:gets1};
Name: n2; Description: dsfgsg; types: {code:gets2};

Код: Выделить весь код
var
s1, s2, str : string;
i: integer;

function InitializeSetup(): Boolean;
begin
   for I := 1 to 2 do 
begin
str:='org'+inttostr(i);
 if GetIniString(str, 'ex1', 'Error', 'C:\временная\example.ini') = '1' then
    s1 :=s1 + GetIniString(str, 'org', 'Error', 'C:\временная\example.ini');
 if GetIniString(str, 'ex2', 'Error', 'C:\временная\example.ini') = '1' then
    s2 :=s2 +' ' + GetIniString(str, 'org', 'Error', 'C:\временная\example.ini');
end;
  Result := True;
end;

function Gets1(Param: String): String;
begin
  Result := s1;
end;


function Gets2(Param: String): String;
begin
  Result := s2;
end;

function Gets(Param: String): String;
begin
 str:= 'org'+ param;
 Result := GetIniString(str, 'org', 'fgsegfsdgr', 'C:\временная\example.ini');
end;
Почему при записи типов в компоненты пишет, что не существует такого типа?! что не так? даже если явно значения задавать

Отправлено: 19:57, 10-09-2011 | #3029


Забанен


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

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


В общем имеется код ->
читать дальше »
Код: Выделить весь код
[ Code]
type
  HSTREAM=DWORD;
  TTimerProc=procedure(uTimerID,uMessage:UINT;dwUser,dw1,dw2:DWORD);
var
  MP3List:TStringList;
  CurrentMP3:integer;
  hMP3:HWND;
  TimerID:LongWord;

function SetTimer(hWnd:HWND;nIDEvent,uElapse:UINT;lpTimerFunc:LongWord{TFNTimerProc}):UINT;  external 'SetTimer@user32.dll stdcall delayload';
function KillTimer(hWnd:HWND;uIDEvent:UINT):BOOL; external 'KillTimer@user32.dll stdcall delayload';
function BASS_ChannelIsActive(Handle:HWND):DWORD; external 'BASS_ChannelIsActive@files:bass.dll stdcall';
function BASS_SetConfig(Option,Value:DWORD):DWORD; external 'BASS_SetConfig@files:bass.dll stdcall';
function BASS_Init(Device:integer;Freq,Flags:DWORD;Win:HWND;CLSID:integer):boolean; external 'BASS_Init@files:bass.dll stdcall delayload';
function BASS_StreamCreateFile(Mem:BOOL;f:PChar;Offset:DWORD;Length:DWORD;Flags:DWORD):HSTREAM; external 'BASS_StreamCreateFile@files:bass.dll stdcall';
function BASS_StreamFree(Handle:HWND):boolean; external 'BASS_StreamFree@files:bass.dll stdcall';
function BASS_ChannelPlay(Handle:HWND;Restart:boolean):boolean; external 'BASS_ChannelPlay@files:bass.dll stdcall';
function BASS_Start: Boolean; external 'BASS_Start@files:bass.dll stdcall';
function BASS_Stop: Boolean; external 'BASS_Stop@files:bass.dll stdcall';
function BASS_Free: Boolean; external 'BASS_Free@files:bass.dll stdcall delayload';
function WrapTimerProc(CallBack:TTimerProc;ParamCount:integer):LongWord; external 'wrapcallback@files:innocallback.dll stdcall';

procedure TimerTick(uTimerID,uMessage:UINT;dwUser,dw1,dw2:DWORD);
begin
  if BASS_ChannelIsActive(hMP3)=0 then begin
    BASS_Stop;
    BASS_StreamFree(hMP3);
    hMP3:=BASS_StreamCreateFile(False,PChar(MP3List.Strings[CurrentMP3]),0,0,0);
    BASS_Start;
    if hMP3<>0 then
      if BASS_ChannelPlay(hMP3,True) then begin
        CurrentMP3:=CurrentMP3+1;
        if CurrentMP3>MP3List.Count-1 then CurrentMP3:=0;
      end;
  end;
end;

function InitializeSetup:boolean;
begin
  ExtractTemporaryFile('Play.mp3');
  MP3List:=TStringList.Create;
  MP3List.Add(ExpandConstant('{tmp}')+'\Play.mp3');
  CurrentMP3:=0;
  Result:=True;
end;

procedure InitializeWizard;
begin
  TimerID:=SetTimer(0,0,500,WrapTimerProc(@TimerTick,5));
  BASS_Init(-1,44100,0,0,0);
  BASS_SetConfig(5,100);
  BASS_SetConfig(6,100);
end;

procedure DeinitializeSetup;
begin
  KillTimer(0,TimerID);
  BASS_Stop;
  BASS_Free;
  MP3List.Free;
end;

как к нему прикрутить кнопку?

Нашёл только это
читать дальше »
Код: Выделить весь код
[ Code]
var
PageNameLabel, PageDescriptionLabel: TLabel;
PageID,ResultCode: Integer;

procedure InitializeWizard();
begin

ExtractTemporaryFile('bass.dll');
ExtractTemporaryFile('innocallback.dll');
ExtractTemporaryFile('botva2.dll');
ExtractTemporaryFile('mb.bmp');
ExtractTemporaryFile('music.mp3');

BASS_Init(ExpandConstant('{tmp}\music.mp3'))
BASS_CreateOnOffButton(ExpandConstant('{tmp}\mb.bmp'), 20, 320, 36, 36, 4)
end;
но он работает с ошибками

Отправлено: 10:09, 11-09-2011 | #3030



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




 
Переход