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

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

 

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


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

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


Лександер, а можешь ГОГ доделанный выложить. Я almost_completed доделал немного (подправил лэйблы, сместил прогресс бар повыше, доделал отмену установки), но дальше влом. Как-то гуглил и видел что andrew0812 на одном из форумов тебе скидывал (ты ведь Лександер aka Gnom )

Отправлено: 15:31, 21-07-2011 | #2381



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

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


Аватара для Johny777

Ветеран


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

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


Подскажите пожалуйста как растянуть внутренне окно окно
в дизайнере не активно
http://s50.radikal.ru/i129/1107/37/5c69c8346650.jpg

Отправлено: 14:10, 22-07-2011 | #2382


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


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

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


Всем добрый день. Ребята, нужна помощь.
Есть скрипт декодирования OGG в WAV
читать дальше »

-------------------------------------------------------------------------------------------

[Setup]
AppName=RecodeOgg
AppVerName=RecodeOgg
OutputDir=.
OutputBaseFilename=RecodeOgg
DefaultDirName={pf}\RecodeOgg
AppendDefaultDirName=False
DisableDirPage=True

[files]
Source: oggdec.exe; DestDir: {app};
Source: oggs\*; DestDir: {app};
Source: oggs\*; DestDir: {app}\Data;

[code]
var
Files: Array of String;
S: String;
n: Integer;

Function StringToArray(Text, Cut: String): array of String; var i, k: Integer;
Begin
SetArrayLength(Result, 0); if Cut = '' then Cut:= #1310; //если шаблон пуст, считаем переводы строк
Repeat k:= Pos(Cut,Text);
if k = 1 then begin Delete(Text, 1, Length(Cut)); CONTINUE
end;
SetArrayLength(Result, GetArrayLength(Result) +1); i:= GetArrayLength(Result) -1;
if k = 0 then
Result[i]:=Text
else begin
Result[i]:= Copy(Text, 1, k -1); Delete(Text, 1, Length(Result[i]) + Length(Cut));
end;
Until Length(Text) * k = 0;
End;

procedure FindFiles(FromDir: String; Mask: String);
var FSR, DSR: TFindRec; FindResult: Boolean;
begin
FindResult:= FindFirst(AddBackslash(FromDir)+Mask, FSR)
while FindResult do begin
if FSR.Attributes and FILE_ATTRIBUTE_DIRECTORY = 0 then begin
S:= S + AddBackslash(fromDir) + FSR.Name +'|';
end;
FindResult:= FindNext(FSR);
end;
FindResult:= FindFirst(AddBackslash(FromDir)+ '*.*', DSR)
while FindResult do begin
if ((DSR.Attributes and FILE_ATTRIBUTE_DIRECTORY) = FILE_ATTRIBUTE_DIRECTORY) and not ((DSR.Name = '.') or (DSR.Name = '..')) then begin
FindFiles(AddBackSlash(FromDir)+ DSR.Name, Mask)
end;
FindResult:= FindNext(DSR);
end;
FindClose(FSR); FindClose(DSR)
end;

procedure RecodeOgg;
var ResultCode: integer; CurFile: String;
begin
FindFiles(ExpandConstant('{app}'), '*.ogg') //Находим все файлы по маске, в выбранной папке
Files:= StringToArray(S, '|') //Переводим в массив
WizardForm.ProgressGauge.Max:= GetArrayLength(Files)-1; //Получаем кол-во файлов
for n:=(GetArrayLength(Files)-1) downto 0 do begin
CurFile:= Files[n]
StringChange(CurFile, AddBackslash(ExpandConstant('{app}')), '')
Exec(ExpandConstant('{app}\oggdec.exe'), '-Q '+ AddQuotes(CurFile), '', SW_Hide, EwWaitUntilTerminated, ResultCode) //Для каждого файла запускаем декодер
DeleteFile(Files[n]) //Удаляем ненужный файл
WizardForm.FilenameLabel.Caption:= Files[n]; //Двигаем прогрессбар
WizardForm.ProgressGauge.Position:= WizardForm.ProgressGauge.Position +1;
end;
DeleteFile(ExpandConstant('{app}\oggdec.exe'))
end;

procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep = ssPostInstall then
begin
WizardForm.ProgressGauge.Position := 0;
WizardForm.StatusLabel.Caption := 'Извлечение аудио файлов...';
RecodeOgg;
end;
end;

-------------------------------------------------------------------------------------------


возможно как-то сделать, что бы не велся поиск файлов OGG, а брался из списка,
например из ogglist.txt, в котором прописаны пути к каждому файлу:

Код: Выделить весь код
"Voice\voice true\true.ogg"
"NBK\345.ogg"
"SOUNDS\over voice\hard drum.ogg"
"SOUNDS\music\123.ogg"
"SOUNDS\terminal future\small f.ogg"
.
.
.
"SOUNDS\terminal future\big.ogg"
Еще есть библиотека bass.dll последней версии v.2.4.7 и приведен пример для использования музыки MP3. Но она еще умеет трэкерную музыку воспроизводить MOD, IT, S3M. Может кто-то набросать пример использования этих трэкерных форматов?

Последний раз редактировалось ssv14, 22-07-2011 в 15:55.


Отправлено: 14:37, 22-07-2011 | #2383


Аватара для Gnom_aka_Lexander

Ветеран


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

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


Цитата Johny777:
Подскажите пожалуйста как растянуть внутренне окно окно
в дизайнере не активно »
в правом верхнем углу - комбобокс с объектами, выбираеш OuterNotebook, и он становится активным, можно менять, по своему усмотрению. С InnerNotebook - тоже самое. В рестулсовском форм-дизайнере, объекты типа TNewNotebook и TNewNotebookPage, только таким образом можно зацеплять для редактирования.
Цитата ssv14:
возможно как-то сделать, что бы не велся поиск файлов OGG, а брался из списка,
например из ogglist.txt, в котором прописаны пути к каждому файлу: »
Можно поинтересоваться, для чего? теоретически - можно, используя функции работы с ini-файлами, но есть скрипт, который нормально сам все находит во вложенных подкаталогах.
Цитата ssv14:
Еще есть библиотека bass.dll последней версии v.2.4.7 и приведен пример для использования музыки MP3. Но она еще умеет трэкерную музыку воспроизводить MOD, IT, S3M. Может кто-то набросать пример использования этих трэкерных форматов? »
На сайте библиотеки есть примеры, перегнать с дельфи, в урезанный дельфи - можно попробовать, осталось найти того, у кого есть желание этим заняться.

Цитата murlakatamenka:
Лександер, а можешь ГОГ доделанный выложить. »
В следующий раз, с личными вопросами, сразу в личку обращайся

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

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

Отправлено: 16:56, 22-07-2011 | #2384


Аватара для Gnom_aka_Lexander

Ветеран


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

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


Цитата VinTagE:
Neutron, Если я понял, то тебе нужен статус панель на ботве то вот пример:
Скачать статус панель от Shegorat
P.S> Там разобратся не трудно! »
А в чем связь статус-панели, и модуля системных требований, который ты предлагаешь взамен?

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


Последний раз редактировалось Gnom_aka_Lexander, 22-07-2011 в 17:56.

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

Отправлено: 17:50, 22-07-2011 | #2385


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


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

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


ssv14:
Цитата:
возможно как-то сделать, что бы не велся поиск файлов OGG, а брался из списка,
например из ogglist.txt, в котором прописаны пути к каждому файлу.
Цитата Лександер:
Можно поинтересоваться, для чего? теоретически - можно, используя функции работы с ini-файлами, но есть скрипт, который нормально сам все находит во вложенных подкаталогах. »
просто тогда будут все OGG файлы распаковываться, а необходимо несколько файлов так и оставить

Отправлено: 19:08, 22-07-2011 | #2386


Аватара для Gnom_aka_Lexander

Ветеран


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

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


Цитата ssv14:
просто тогда будут все OGG файлы распаковываться, а необходимо несколько файлов так и оставить »
Ясно, сейчас освобжусь, накидаю пример получения списка из ини, там такто просто, глянь пока в справке функцию -
function GetIniString(const Section, Key, Default, Filename: String): String;
-указываеш заранее в ини список, например так: секция - список, ключ - номер файла, имя файла - имя файла. Потом в скрипте читаеш имена файлов по номерам ключей.
Цитата ssv14:
я думаю, можно сделать так: »
Можно и так, но не обязательно батником, можно и в коде это сделать.
Экспортируеш системную функцию перемещения:

function MoveFile(const srcFile, destFile: PChar): Integer; external 'MoveFileA@kernel32.dll stdcall';
Потом в нужном месте пишеш:
MoveFile('файл с измененным расширением','файл с правильным расширением');

кстати, для бекапа, эту функцию тоже удобнее исподьзовать, чем самописную функцию перемещения для инно - системная значительно быстрей сработает.

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


Последний раз редактировалось Gnom_aka_Lexander, 22-07-2011 в 20:54.

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

Отправлено: 19:35, 22-07-2011 | #2387


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


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

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


я думаю, можно сделать так:
переименовать те файлы OGG, которые нужно оставить в OG_ например.
После завершения установки и декодирования всех OGG, через батник переименовать OG_ в OGG через секцию [Run]

Код: Выделить весь код
[Run]
Filename: "{app}\ren_ogg.bat"; Flags: shellexec runhidden

Отправлено: 20:12, 22-07-2011 | #2388


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


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

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


ни как не получается подружить трэкерную музыку с bass.dll v2.4.7
что я не так делаю?

читать дальше »

Код: Выделить весь код
[_Code]
const
  BASS_MUSIC_RAMP               = 1;
  BASS_MUSIC_RAMPS             = 2;
  BASS_MUSIC_LOOP                = 4;
  BASS_MUSIC_FT2MOD           = 16;
  BASS_MUSIC_PT1MOD           = 32;
  BASS_MUSIC_SURROUND     = 512;
  BASS_MUSIC_SURROUND2   = 1024;


function BASS_Init(device: Integer; freq, flags: DWORD; win: hwnd; CLSID: Integer): Boolean; 
external 'BASS_Init@files:BASS.dll stdcall delayload';

function BASS_MusicLoad(mem: BOOL; f: PChar; offset: DWORD; length: DWORD; flags: DWORD; frec: DWORD): Boolean;
external 'BASS_MusicLoad@files:BASS.dll stdcall delayload';

function BASS_ChannelPlay(handle: DWORD; restart: BOOL): Boolean; 
external 'BASS_ChannelPlay@files:BASS.dll stdcall delayload';

function BASS_ChannelGetLevel(handle: DWORD): Boolean;
external 'BASS_Start@files:BASS.dll stdcall delayload';

function BASS_Start: Boolean; 
external 'BASS_Start@files:BASS.dll stdcall delayload';

function BASS_Stop: Boolean; 
external 'BASS_Stop@files:BASS.dll stdcall delayload';

function BASS_Free: Boolean; 
external 'BASS_Free@files:BASS.dll stdcall delayload';


function InitializeSetup(): Boolean;

var
  Mus: HWND;
  modName: string;
begin
  ExtractTemporaryFile('BASS.dll');
  ExtractTemporaryFile('BUSSI.S3M');
  modName := ExpandConstant('{tmp}\BUSSI.S3M');
  BASS_Init(-1, 44100, 0, 0, 0);
  Mus := BASS_MusicLoad(FALSE, PChar(modName), 0, 0, BASS_MUSIC_SURROUND, 0);
  BASS_Start();
  BASS_ChannelPlay(Mus, False);
  BASS_ChannelGetLevel();
  Result := True;
end;
 
procedure DeinitializeSetup();
begin
  BASS_Stop();
  BASS_Free();
end;

Последний раз редактировалось ssv14, 23-07-2011 в 00:17.


Отправлено: 00:05, 23-07-2011 | #2389



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




 
Переход