Ru-Board.club
← Вернуться в раздел «Программы»

» Inno Setup (создание инсталяционных пакетов)

Автор: iTASmania_Inc
Дата сообщения: 12.09.2007 17:37
omals

Цитата:
шото мне кажется шо правильно будет поступать вот так


Цитата:
создаем для кажного языка дополнительный файлы

А зачем? Это этого мало, что изменится!
ИМХО, нерационально. По крайней мере, в данном случае.
Автор: omals
Дата сообщения: 12.09.2007 17:50
iTASmania_Inc
в данном случае действительно достаточно
если только ради 1-2 мессаг, то не стоит город городить
но, шото мне подсказывает, шо там не одна мессага будет нужна
и кроме того, возможно, мой метод кому-то ешо будет полезен ...
Автор: Dimbay
Дата сообщения: 12.09.2007 18:10
Victor_Dobrov
Ничего не происходит.
Автор: Nekt
Дата сообщения: 12.09.2007 18:14
Unc1e
А что-бы к ключу в реестре он добавлял папку?
Автор: Unc1e
Дата сообщения: 12.09.2007 18:44
Nekt Если параметр InstallPath содержит в конце пути "\", то
DefaultDirName={reg:HKLM\SOFTWARE\GSC Game World\STALKER-SHOC,InstallPath|{pf}\My Program}Myfolder
Если не содержит, то нужно самому дописать
DefaultDirName={reg:HKLM\SOFTWARE\GSC Game World\STALKER-SHOC,InstallPath|{pf}\My Program}\Myfolder
Автор: Victor_Dobrov
Дата сообщения: 13.09.2007 01:25
Dimbay
Ты просил проверить свой скрипт, я проверил и указал на ошибку.

P.S. перезалил Corona Skin, изменения небольшие: в информации о системе теперь показывается кол-во процессоров (ядер)
Автор: RazDray
Дата сообщения: 13.09.2007 19:54
Подскажите, где можно посмотреть все доступные коды форматирования текста.
К примеру %n - перенос строки. А что-нибудь ещё есть?
И конкретно интересует как сделать табуляцию.
Автор: iTASmania_Inc
Дата сообщения: 13.09.2007 20:27
RazDray

Цитата:
конкретно интересует как сделать табуляцию

Пример:
Text.Caption := #9 'Все компоненты соответствуют минимальным требованиям игры.'
Автор: RazDray
Дата сообщения: 13.09.2007 21:23
iTASmania_Inc
9-ка напрашивалась. Сегодня перепробовал её и так и сяк - ничего.
Видимо действительно коды форматирования просто не обрабатываются в окне выбора компонентов.
Хотя вот перенос строки (%n) обрабатывается, вот и была у меня надежда...
Автор: Victor_Dobrov
Дата сообщения: 14.09.2007 15:13
Corona Skin
Переписаны функции создания и обновления текстур на кнопках.
Автор: iTASmania_Inc
Дата сообщения: 14.09.2007 20:33
Victor_Dobrov
Уже говорил насчёт комментариев и ещё раз повторю:
// Win9x больше не поддерживается
По-моему, поддерживается. (Если, конечно, добавить кое-какие строки, ведь насколько я понял ОЗУ корректно определяется и на Win9x?)
Жду поддержки Linux и Unix.
Автор: Chanka
Дата сообщения: 14.09.2007 21:47
Victor_Dobrov
Можно вопросик
Что нужно изменить в Corona Skin чтобы в графе звуковые карты была только одна звуковая карта
У меня показывает следующие
Динамики (C-Media AC97(1) Лин. вход (C-Media AC97(2) Микрофон (C-Media AC97(3) (рекомендуется Creative X-Fi)
А надо чтобы было только
Динамики (C-Media AC97
Автор: Victor_Dobrov
Дата сообщения: 15.09.2007 01:26
Chanka - скачай новую версию скина (фраза 'рекомендуется...' должна быть только в таблице мин. требований)

Цитата:
Что нужно изменить, чтобы в Corona Skin отображалась только одна звуковая карта

for errCode:= 0 to mixerGetNumDevs do begin
заменить на
for errCode:= 0 to 1 do begin
будет показано только основное звуковое устройство.

iTASmania_Inc
Windows 9x поддерживается полностью.
Linux - только когда рак на горе свиснет
Автор: iTASmania_Inc
Дата сообщения: 15.09.2007 01:34
Victor_Dobrov

Цитата:
Windows 9x поддерживается полностью.

Я в том смысле, чтобы комментарии поправить в скине.
И разве это не важно?
if not UsingWinNT then StringChange(DeviceKey, 'Windows NT', 'Windows')
По-моему, должно быть в скрипте. Или нет? Качал текущую версию - данная строка отсутствует.

Цитата:
Linux - только когда рак на горе свиснет


А Unix? Без поддержки Unix мне проверка системы не нужна.
Автор: Victor_Dobrov
Дата сообщения: 15.09.2007 01:45
В следующей версии поправлю комментарии и показ версии Win9x. Кроме того, будет проигрывание музыки в фоне:

;играть Mp3, Ogg, Midi файлы. Создаётся плейлист из папки Music рядом с инсталлятором, или из папки 'Моя музыка' (при отсутствии первой)
    #define EnableMusic true    ;чтобы отключить воспроизведение музыки во время установки, удалите эту строку
Автор: iTASmania_Inc
Дата сообщения: 15.09.2007 01:52

Цитата:
Кроме того, будет проигрывание музыки в фоне


Цитата:
Создаётся плейлист из папки Music рядом с инсталлятором

Плейлист... Вот это круто!!! Ещё бы кнопки управления музыкой в стиле Corona Skin добавить - ваще замечательно выйдет.
P.S.: только места, наверное, на WizardForm не хватит...
P.S.S.: с нетерпением ждём релиза.
Автор: Chanka
Дата сообщения: 15.09.2007 08:26
Victor_Dobrov
Спасибо большое.
Автор: Forslay
Дата сообщения: 16.09.2007 10:29
Профы, напишите код со следующими условиями:

Мне надо, что бы по нажатию кнопки "завершение" ну при закрытии инсталляционной системы после успешной установки, открывлось приложение "qip.exe" автоматически ! ! !
То есть - C:\Program Files\QIP\qip.exe

напишите пожалуйста такой код...

Заранее спасибо ! ! !
Автор: iTASmania_Inc
Дата сообщения: 16.09.2007 12:31
Forslay
[more=Вот пример.]
procedure CurStepChanged(CurStep: TSetupStep);
var
ResultCode: Integer;
begin
if CurStep = ssDone then
Exec('C:\Program Files\QIP\qip.exe', '', '', SW_SHOW, ewWaitUntilIdle, ResultCode)
end;
[/more]
Но учти, что программа может быть установлена и в другой папке. Лучше брать точное местоположение из реестра.
Автор: Forslay
Дата сообщения: 16.09.2007 15:15
Большое спасибо, но я не нашёл регестрацию qip'а в реестре...
может плохо искал, поправьте если что...

iTASmania_Inc, спасибо большое ! ! !
Автор: xGMZx
Дата сообщения: 16.09.2007 19:20
строка:
Filename:{app}\KK.INI;Section:setup; Key:eeee;String:{app}\save

как зделать чтоб писало ini без [????] ?
типа просто String...
Автор: Unc1e
Дата сообщения: 16.09.2007 20:24
xGMZx

Цитата:
как зделать чтоб писало ini без [????] ?

То есть вообще не используя какую либо секцию? Так ИМХО не получится. Вот через секцию [Code]:
[Code]
procedure CurStepChanged(CurStep: TSetupStep);
begin
If CurStep=ssPostInstall then
begin
SaveStringToFile(ExpandConstant('{app}')+'\KK.INI', '[setup]' + #13#10, true);
SaveStringToFile(ExpandConstant('{app}')+'\KK.INI', 'eeee' + '=' + ExpandConstant('{app}') + '\save' + #13#10, true);
end;
end;
Автор: xGMZx
Дата сообщения: 17.09.2007 13:32
работает...

надо еще в самое начало файла писать...
как реализировать?
Автор: Igrock2007
Дата сообщения: 17.09.2007 14:03
Как в Inno Setup добиться конвертации аудио файлов? Например, как это было в инсталляторах для Half-Life 2. Там, по-моему, ogg-файлы конвертировались в wav.
Дело в том, что у меня есть корявая пиратская версия HL 2 - Episode 1 с русскими субтитрами и английской озвучкой, причём голосов в игре не слышно, хотя в папке
с игрой диалоги присутствуют. В консоли игры полно ошибок: xxx.wav файл не найден. Опытным путём понял что у wav-файлов низкая частота дискретизации 22050 гц или 11025 гц. Если же изменить её кодером (я использовал Easy CD-DA Extractor),
то всё отлично, единственная проблема большинство файлов должны быть mono, а получаются стерео, что естественно скаживается на их размере в 2 раза. Как всё это провернуть в Inno?



Добавлено:
Пожалуйста выложите скрипт для игры Battlefield 2, или хотя бы секцию [Registry].
Нужно для того,чтобы патч 1.4 установить, а то он пишет, что не найдена папка с игрой.
Или может проверка идет по файлу, а не реестру? Подскажите, может кто знает, как
установить или распаковать этот патч. Также если есть секция [Registry], или reg-файл
для самого патча скиньте куда нибудь.
Автор: Victor_Dobrov
Дата сообщения: 17.09.2007 15:44
Вопрос к спецам:
Воспроизведение mp3(ogg)-файла через bass.dll - Кто знает, как получить общее время звучания, и текущую позицию времени при игре.
В bass.dll функция BASS_ChannelGetLength возвращает тип данных Int64. Я делал так: type Int64 = array[0..1] of DWord; BASS_ChannelGetLength: Int64... [more=Вот тестовый скрипт...]
[Setup]
AppName=Music
AppVerName=Music 0.1
CreateAppDir=false
OutputDir={#SourcePath}
OutputBaseFilename=Music

[Files]
Source: bass.dll; DestDir: embedded; Flags: dontcopy noencryption

[Code]
type
    Int64 = array[0..1] of DWord;
var
    StatusLabel: TLabel;
    MusicHandle: hWnd;
    MusicLen: Int64;
    MusicTime: Extended;

function BASS_Init(device: Integer; freq, flags: DWord; win: hWnd; CLSID: Integer): Bool; external 'BASS_Init@files:BASS.dll stdcall delayload';
function BASS_StreamCreateFile(mem: Bool; f: PChar; offset, length, flags: DWord): hWnd; external 'BASS_StreamCreateFile@files:BASS.dll stdcall delayload';
function BASS_ChannelSetFlags(handle, flags: DWord): Bool; external 'BASS_ChannelSetFlags@files:BASS.dll stdcall delayload';
function BASS_ChannelPlay(handle: hWnd; restart: Bool): Bool; external 'BASS_ChannelPlay@files:BASS.dll stdcall delayload';
function BASS_ChannelIsActive(handle: hWnd): DWord; external 'BASS_ChannelIsActive@files:BASS.dll stdcall delayload';
function BASS_ChannelPause(handle: hWnd): Bool; external 'BASS_ChannelPause@files:BASS.dll stdcall delayload';
function BASS_SetVolume(volume: DWord): Bool; external 'BASS_SetVolume@files:BASS.dll stdcall delayload';
function BASS_Start: Bool; external 'BASS_Start@files:BASS.dll stdcall delayload';
function BASS_Stop: Bool; external 'BASS_Stop@files:BASS.dll stdcall delayload';
function BASS_Pause: Bool; external 'BASS_Pause@files:BASS.dll stdcall delayload';
function BASS_Free: Bool; external 'BASS_Free@files:BASS.dll stdcall delayload';
function BASS_StreamFree(handle: hWnd): Bool; external 'BASS_StreamFree@files:BASS.dll stdcall delayload';
function BASS_PluginFree(hplugin: hWnd): Bool; external 'BASS_PluginFree@files:BASS.dll stdcall delayload';
function BASS_PluginLoad(filename: PChar; flags: DWord): hWnd; external 'BASS_PluginLoad@files:BASS.dll stdcall delayload';
function BASS_ChannelGetLength(handle: hWnd): Int64; external 'BASS_ChannelGetLength@files:BASS.dll stdcall delayload';
function BASS_ChannelBytes2Seconds(handle: hWnd; pos: Int64): Extended; external 'BASS_ChannelBytes2Seconds@files:BASS.dll stdcall delayload';

Procedure InitializeWizard;
    Begin

    ExtractTemporaryFile('bass.dll')
    BASS_Init(-1, 44100, 0, 0, 0);
    MusicHandle:= BASS_StreamCreateFile(false, PChar(ExpandConstant('{src}\Music.mp3')), 0, 0, 0);    //    BASS_STREAM_AUTOFREE BASS_STREAM_PRESCAN BASS_SAMPLE_LOOP
    BASS_Start;
    BASS_ChannelPlay(MusicHandle, false);

    StatusLabel:=TLabel.Create(WizardForm)
    StatusLabel.Left:=10
    StatusLabel.Top:=330
    StatusLabel.Parent:=WizardForm

    MusicLen:= BASS_ChannelGetLength(MusicHandle)
    MusicTime:= BASS_ChannelBytes2Seconds(MusicHandle, MusicLen)
    StatusLabel.Caption:= 'MusicTime: ' + FloatToStr(MusicTime)
End;

//    time := Trunc(BASS_ChannelBytes2Seconds(chn,pos));
//    DWORD time=BASS_ChannelBytes2Seconds(chan,pos);
//    sprintf(text,"%u:%02u",time/60,time%60);

Procedure DeinitializeSetup;
    Begin
        BASS_Stop; BASS_Free; BASS_PluginFree(0);
    End;[/more]
Автор: Unc1e
Дата сообщения: 17.09.2007 18:41
xGMZx

Цитата:
надо еще в самое начало файла писать...

То есть в папке установки уже есть файл KK.INI и в его начало надо дописать информацию? Если да, то пробуй вот так:
[Code]
procedure CurStepChanged(CurStep: TSetupStep);
var
S: String;
begin
If CurStep=ssPostInstall then
begin
LoadStringFromFile(ExpandConstant('{app}\KK.INI'), S)
DeleteFile(ExpandConstant('{app}\KK.INI'));
SaveStringToFile(ExpandConstant('{app}')+'\KK.INI', '[setup]' + #13#10, true);
SaveStringToFile(ExpandConstant('{app}')+'\KK.INI', 'eeee' + '=' + ExpandConstant('{app}') + '\save' + #13#10, true);
SaveStringToFile(ExpandConstant('{app}')+'\KK.INI', S, true);
end;
end;
Автор: Erazer
Дата сообщения: 18.09.2007 02:14
никак не могу заставить ее создавать ярлыки либо на рабочем столе текущего пользователя либо всех, всегда создается на столе текущего, и никогда на all users
Наставьте на путь истинный плз: сообщение под тэгом

Автор: namchik
Дата сообщения: 18.09.2007 04:50
Erazer
попробуй {commondesktop} вместо {userdesktop}
Автор: dim30ma10
Дата сообщения: 18.09.2007 07:26
Всем здрасьть
Так никто и не знает структуру unins???.dat ??
Автор: omals
Дата сообщения: 18.09.2007 07:38
dim30ma10
я использую DatViewer
откуда взял не помню
может есть и версии поновее
та шо есть у меня
http://rapidshare.com/files/56473700/DatViewer.zip


Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768

Предыдущая тема: Mail.ru агент - вход не выполнен


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.