TaTTDoGGСпасибо большое !!! помогло)
» Inno Setup (создание инсталяционных пакетов)
TaTTDoGG, похоже добавление таким образом Служб видимо просто не судьба, сначала вроде всё работает, но стоит только перезагрузить компьютер, и тут начинается лажа с интернетом, раза три - четыре переустанавливал систему, и всё одно и тоже, устанавливаю программу, всё работает, перезагрузил комп и интернет не работает, причём как локальная сеть не фурычит, так и соединение VPN. Вот не знаю что такое.
Ах да, чуть не забыл, ОС Windows XP, если конечно этот что-то изменит.
Ах да, чуть не забыл, ОС Windows XP, если конечно этот что-то изменит.
Devils_Night
я в шоке... до сих пор у меня твоя служба работает... при старте системы всё норм запускается...
я сам много раз так устанавливал службу mysql и ни разу не было никаких ошибок... мб твоя служба рубит что-нибудь...
я в шоке... до сих пор у меня твоя служба работает... при старте системы всё норм запускается...
я сам много раз так устанавливал службу mysql и ни разу не было никаких ошибок... мб твоя служба рубит что-нибудь...
Цитата:
мб твоя служба рубит что-нибудь...Не, не, вряд ли, т.к когда устанавливаю исходный инсталятор (идёт как есть от производителя, интал InstallShield), то всё норм, все службы грузятся, всё работает, перезагружал раз десять, всё норм, инет работает, только стоит пересобрать на Inno Setup с добавление службы твоего варианта, то всё, край, соединение с инетом и локальной сетью не работает, как будто сетевой картой там и не пахнет. Вот странно.
Моя служба безобидна, она играет роль только при запуске устройства, т.е висит себе висит, вставляю устройство, и когда устройство вставлено то по ходу дела, устройство даёт команду службе, а потом эта служба сверяет определённый ключ в реестре, если ключ найден и он совпадает, то служба, запускает ПО для работы на этом устройстве.
Devils_Night
тогда я в шоке...
тогда я в шоке...
TaTTDoGG
Цитата:
Ещё вопрос, имеются файлы File.exe для X64 и File.exe для X86, как сделать так, что бы File.exe (X64) устанавливалось для X64, а File.exe (X86) устанавливалось для X86 архитектур?
Смотрел справку, нашёл только что-то там про IsWin64, в общем я нифига не понял.
Можно ли как то проще? Типа
Код: [Files]
Source: File.exe; DestDir: {app}; Flags: X64
Source: File.exe; DestDir: {app}; Flags: X86
Цитата:
тогда я в шоке...Да я сам в шоке, ладно, позже переустановлю систему, и в качестве службы задействую Aimp, протестирую и узнаю что к чему.
Ещё вопрос, имеются файлы File.exe для X64 и File.exe для X86, как сделать так, что бы File.exe (X64) устанавливалось для X64, а File.exe (X86) устанавливалось для X86 архитектур?
Смотрел справку, нашёл только что-то там про IsWin64, в общем я нифига не понял.
Можно ли как то проще? Типа
Код: [Files]
Source: File.exe; DestDir: {app}; Flags: X64
Source: File.exe; DestDir: {app}; Flags: X86
Devils_Night
Код: [Files]
Source: x64\File.exe; DestDir: {app}; Check: IsWin64
Source: x32\File.exe; DestDir: {app}; Check: not IsWin64
Код: [Files]
Source: x64\File.exe; DestDir: {app}; Check: IsWin64
Source: x32\File.exe; DestDir: {app}; Check: not IsWin64
ISDONE 6.0f+music+vide_flash заценитє переделаний мной скрипт феникса не судите. Не судитє строго.
http://rghost.ru/32339191
http://rghost.ru/32339191
Ктонить может подкрутить скрипт, чтоб та часть что касается возврата оригинальных файлов, запускалась только если выбран компонент "Game\Lokal\Backup", а та часть что отвечает за проверку на оставшыеся файлы, если выбран "Game\Full"?
[more]
Код:
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
var
Res: Integer;
//Возврат оригинальных файлов
begin
if CurUninstallStep = usPostUninstall then
begin
MoveDir(ExpandConstant('{app}\Backup\'),ExpandConstant('{app}'));
RemoveDir(ExpandConstant('{app}\Backup\'));
end;
//Проверка на оставшыеся файлы
begin
case CurUninstallStep of
usPostUninstall:
begin
if DirExists(ExpandConstant('{app}')) then
if ExpandConstant('{language}') = 'ua' then
case MsgBox('Папка "' + ExpandConstant('{app}') + '" не порожня.'#13#13 +
'"Так" – повне видалення всіх файлів у папці, включаючи саму папку.' #13#13 +
'"Ні" – відкрити папку в провіднику, щоб вручну видалити файли.'#13#13 +
'"Скасувати" – нічого не робити, видалити папку пізніше самостійно.', mbInformation, MB_YESNOCANCEL) of
IDYES:
if not DelTree(ExpandConstant('{app}'), True, True, True) then
MsgBox('Папка не видалена.' #13#13 'Папка або один з файлів у ній задіяні іншою програмою.', mbError, MB_OK);
IDNO:
if not ShellExec('open', ExpandConstant('{app}'), '', '', SW_SHOWMAXIMIZED, ewNoWait, Res) then
MsgBox('Помилка відкриття.' #13#13 'Папка не знайдена.', mbError, MB_OK);
IDCANCEL:;
end
else
if ExpandConstant('{language}') = 'ru' then
case MsgBox('Папка "' + ExpandConstant('{app}') + '" не пуста.'#13#13 +
'"Да" – полное удаление всех файлов в папке, включая саму папку.' #13#13 +
'"Нет" – открыть папку в проводнике, чтобы вручную удалить файлы.'#13#13 +
'"Отмена" – ничего не делать, удалить папку позже самостоятельно.', mbInformation, MB_YESNOCANCEL) of
IDYES:
if not DelTree(ExpandConstant('{app}'), True, True, True) then
MsgBox('Папка не удалена.' #13#13 'Папка или один из файлов в ней задействованы другим приложением.', mbError, MB_OK);
IDNO:
if not ShellExec('open', ExpandConstant('{app}'), '', '', SW_SHOWMAXIMIZED, ewNoWait, Res) then
MsgBox('Ошибка открытия.' #13#13 'Папка не найдена.', mbError, MB_OK);
IDCANCEL:;
end
else
case MsgBox('Directory "' + ExpandConstant('{app}') + '" is not empty.'#13#13 +
'"Yes" to delete all of the files in the directory, including the directory itself.' #13#13 +
'"No" to open the directory with explorer to delete the files manually.'#13#13 +
'"Cancel" to do nothing and delete the directory later manually.', mbInformation, MB_YESNOCANCEL) of
IDYES:
if not DelTree(ExpandConstant('{app}'), True, True, True) then
MsgBox('Directory is not deleted.' #13#13 'Directory or one of the files are used by the other application.', mbError, MB_OK);
IDNO:
if not ShellExec('open', ExpandConstant('{app}'), '', '', SW_SHOWMAXIMIZED, ewNoWait, Res) then
MsgBox('Error opening the directory.' #13#13 'Directory is not found.', mbError, MB_OK);
IDCANCEL:;
end
end
end
end;
end;
[more]
Код:
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
var
Res: Integer;
//Возврат оригинальных файлов
begin
if CurUninstallStep = usPostUninstall then
begin
MoveDir(ExpandConstant('{app}\Backup\'),ExpandConstant('{app}'));
RemoveDir(ExpandConstant('{app}\Backup\'));
end;
//Проверка на оставшыеся файлы
begin
case CurUninstallStep of
usPostUninstall:
begin
if DirExists(ExpandConstant('{app}')) then
if ExpandConstant('{language}') = 'ua' then
case MsgBox('Папка "' + ExpandConstant('{app}') + '" не порожня.'#13#13 +
'"Так" – повне видалення всіх файлів у папці, включаючи саму папку.' #13#13 +
'"Ні" – відкрити папку в провіднику, щоб вручну видалити файли.'#13#13 +
'"Скасувати" – нічого не робити, видалити папку пізніше самостійно.', mbInformation, MB_YESNOCANCEL) of
IDYES:
if not DelTree(ExpandConstant('{app}'), True, True, True) then
MsgBox('Папка не видалена.' #13#13 'Папка або один з файлів у ній задіяні іншою програмою.', mbError, MB_OK);
IDNO:
if not ShellExec('open', ExpandConstant('{app}'), '', '', SW_SHOWMAXIMIZED, ewNoWait, Res) then
MsgBox('Помилка відкриття.' #13#13 'Папка не знайдена.', mbError, MB_OK);
IDCANCEL:;
end
else
if ExpandConstant('{language}') = 'ru' then
case MsgBox('Папка "' + ExpandConstant('{app}') + '" не пуста.'#13#13 +
'"Да" – полное удаление всех файлов в папке, включая саму папку.' #13#13 +
'"Нет" – открыть папку в проводнике, чтобы вручную удалить файлы.'#13#13 +
'"Отмена" – ничего не делать, удалить папку позже самостоятельно.', mbInformation, MB_YESNOCANCEL) of
IDYES:
if not DelTree(ExpandConstant('{app}'), True, True, True) then
MsgBox('Папка не удалена.' #13#13 'Папка или один из файлов в ней задействованы другим приложением.', mbError, MB_OK);
IDNO:
if not ShellExec('open', ExpandConstant('{app}'), '', '', SW_SHOWMAXIMIZED, ewNoWait, Res) then
MsgBox('Ошибка открытия.' #13#13 'Папка не найдена.', mbError, MB_OK);
IDCANCEL:;
end
else
case MsgBox('Directory "' + ExpandConstant('{app}') + '" is not empty.'#13#13 +
'"Yes" to delete all of the files in the directory, including the directory itself.' #13#13 +
'"No" to open the directory with explorer to delete the files manually.'#13#13 +
'"Cancel" to do nothing and delete the directory later manually.', mbInformation, MB_YESNOCANCEL) of
IDYES:
if not DelTree(ExpandConstant('{app}'), True, True, True) then
MsgBox('Directory is not deleted.' #13#13 'Directory or one of the files are used by the other application.', mbError, MB_OK);
IDNO:
if not ShellExec('open', ExpandConstant('{app}'), '', '', SW_SHOWMAXIMIZED, ewNoWait, Res) then
MsgBox('Error opening the directory.' #13#13 'Directory is not found.', mbError, MB_OK);
IDCANCEL:;
end
end
end
end;
end;
Добрый вечер!
Пожалуйста помогите!!!
Добавил в скрипт
[more][Tasks]
Name: task1; Description: Дополнительное программное обеспечение:
Name: task1\task2; Description: Обновить DirectX
Name: task1\task3; Description: Установить Ubisoft Game Launcher
Name: task1\task4; Description: Установить Microsoft Visual C++ Redist
[Run]
Filename: {src}\Redist\DirectX\DXSETUP.exe; Parameters: /silent; Tasks: task1\task2; Flags: waituntilterminated
Filename: {src}\Redist\UbisoftGameLauncherInstaller.exe; Parameters: /Q; Tasks: task1\task3; Flags: waituntilterminated
Filename: {src}\Redist\vcredist_x86.exe; Parameters: /Q; Tasks: task1\task4; Flags: waituntilterminated[/more]
и в итоге получилось
и Ubisoft Game Launcher устанавливается в самом начале.
А хотелось бы так
Помогите пожалуйста!!!
Скрипт Napoleon Total War
Пожалуйста помогите!!!
Добавил в скрипт
[more][Tasks]
Name: task1; Description: Дополнительное программное обеспечение:
Name: task1\task2; Description: Обновить DirectX
Name: task1\task3; Description: Установить Ubisoft Game Launcher
Name: task1\task4; Description: Установить Microsoft Visual C++ Redist
[Run]
Filename: {src}\Redist\DirectX\DXSETUP.exe; Parameters: /silent; Tasks: task1\task2; Flags: waituntilterminated
Filename: {src}\Redist\UbisoftGameLauncherInstaller.exe; Parameters: /Q; Tasks: task1\task3; Flags: waituntilterminated
Filename: {src}\Redist\vcredist_x86.exe; Parameters: /Q; Tasks: task1\task4; Flags: waituntilterminated[/more]
и в итоге получилось
и Ubisoft Game Launcher устанавливается в самом начале.
А хотелось бы так
Помогите пожалуйста!!!
Скрипт Napoleon Total War
я вообще не юзаю секцию run потому что она всё в начале делает.
у меня в коде есть процедура AdditionalSoftware которая вызывается в ssPostInstall
а в самой процедуре я устанавливают только то что было выделено в секции Task
а по поводу "поднять выше", то ищите в скрипте нужные вам лейблы и меняйте их Top значение
и почему вы решили что ubisoftlauncher нужно устанавливать с ключом /Q ?
у меня в коде есть процедура AdditionalSoftware которая вызывается в ssPostInstall
а в самой процедуре я устанавливают только то что было выделено в секции Task
а по поводу "поднять выше", то ищите в скрипте нужные вам лейблы и меняйте их Top значение
и почему вы решили что ubisoftlauncher нужно устанавливать с ключом /Q ?
TaTTDoGG
Спасибо за ответ. Такой процедуры у меня нет. Я слабоват в создании скриптов - только учусь, пользуюсь готовыми. В скрипте нет добавления дополнительного ПО и сам стараюсь его сделать. Кто-то выложил, как добавить DirectX вот и попробовал.
Вот оригиналы:
[more=Вариант 1][Tasks]
Name: task1; Description: Дополнительное программное обеспечение:
Name: task1\task2; Description: Обновить DirectX
Name: task1\task3; Description: Установить PhysX
Name: task1\task4; Description: Установить Microsoft Visual C++ Redist
[Run]
Filename: {src}\Redist\DirectX\DirectX.exe; Parameters: /silent; Tasks: task1\task2; Flags: waituntilterminated
Filename: {src}\Redist\PhysX.exe; Parameters: /Q; Tasks: task1\task3; Flags: waituntilterminated
Filename: {src}\Redist\VC Redist.exe; Parameters: /Q; Tasks: task1\task4; Flags: waituntilterminated[/more]
[more=Вариант 2][Components]
Name: first; Description: Обновить vcRedist 2005; Flags: checkablealone; Types: full
Name: second; Description: Обновить vcRedist 2008; Flags: checkablealone; Types: full
Name: fird; Description: Обновить DirectX (нужно интернет соединение); Flags: checkablealone; Types: full
[Run]
Filename: {app}\vcredist_x86_2005.exe; WorkingDir: {app}\; Parameters: /q; StatusMsg: Завершение распаковки, ждите...; Components: first
Filename: {app}\vcredist_x86_2008.exe; WorkingDir: {app}\; Parameters: /q; StatusMsg: Завершение распаковки, ждите...; Components: second
Filename: {app}\dxwebsetup.exe; WorkingDir: {app}\; StatusMsg: Завершение распаковки, ждите...; Components: fird
[Files]
Source: C:\Redist\vcredist_x86_2005.exe; DestDir: {app}; Flags: ignoreversion deleteafterinstall;
Source: C:\Redist\vcredist_x86_2008.exe; DestDir: {app}; Flags: ignoreversion deleteafterinstall;
Source: C:\Redist\dxwebsetup.exe; DestDir: {app}; Flags: ignoreversion deleteafterinstall;[/more]
Второй выбивает ошибку.
Ну вот итог вы видите.
Спасибо за ответ. Такой процедуры у меня нет. Я слабоват в создании скриптов - только учусь, пользуюсь готовыми. В скрипте нет добавления дополнительного ПО и сам стараюсь его сделать. Кто-то выложил, как добавить DirectX вот и попробовал.
Вот оригиналы:
[more=Вариант 1][Tasks]
Name: task1; Description: Дополнительное программное обеспечение:
Name: task1\task2; Description: Обновить DirectX
Name: task1\task3; Description: Установить PhysX
Name: task1\task4; Description: Установить Microsoft Visual C++ Redist
[Run]
Filename: {src}\Redist\DirectX\DirectX.exe; Parameters: /silent; Tasks: task1\task2; Flags: waituntilterminated
Filename: {src}\Redist\PhysX.exe; Parameters: /Q; Tasks: task1\task3; Flags: waituntilterminated
Filename: {src}\Redist\VC Redist.exe; Parameters: /Q; Tasks: task1\task4; Flags: waituntilterminated[/more]
[more=Вариант 2][Components]
Name: first; Description: Обновить vcRedist 2005; Flags: checkablealone; Types: full
Name: second; Description: Обновить vcRedist 2008; Flags: checkablealone; Types: full
Name: fird; Description: Обновить DirectX (нужно интернет соединение); Flags: checkablealone; Types: full
[Run]
Filename: {app}\vcredist_x86_2005.exe; WorkingDir: {app}\; Parameters: /q; StatusMsg: Завершение распаковки, ждите...; Components: first
Filename: {app}\vcredist_x86_2008.exe; WorkingDir: {app}\; Parameters: /q; StatusMsg: Завершение распаковки, ждите...; Components: second
Filename: {app}\dxwebsetup.exe; WorkingDir: {app}\; StatusMsg: Завершение распаковки, ждите...; Components: fird
[Files]
Source: C:\Redist\vcredist_x86_2005.exe; DestDir: {app}; Flags: ignoreversion deleteafterinstall;
Source: C:\Redist\vcredist_x86_2008.exe; DestDir: {app}; Flags: ignoreversion deleteafterinstall;
Source: C:\Redist\dxwebsetup.exe; DestDir: {app}; Flags: ignoreversion deleteafterinstall;[/more]
Второй выбивает ошибку.
Ну вот итог вы видите.
Код:
procedure InstallAdditionalSoftware;
var
ResultCode: integer;
begin
if IsTaskSelected('addsw/directx') then
begin
Exec(ExpandConstant('{src}\Redist\DirectX\DXSETUP.exe'), '/silent', ExpandConstant('{src}\Redist\DirectX'), SW_HIDE, ewWaitUntilTerminated, ResultCode);
end;
if IsTaskSelected('addsw/vcredist') then
begin
Exec(ExpandConstant('{src}\Redist\VCR_Ext_x86_x64.exe'), '/S', ExpandConstant('{src}\Redist'), SW_HIDE, ewWaitUntilTerminated, ResultCode);
end;
end;
procedure CurStepChanged(CurStep: TSetupStep);
begin
if (CurStep=ssPostInstall) then
begin
InstallAdditionalSoftware;
end;
TaTTDoGG
Я так понимаю, что нужно оставить Task и в коде прописать Ваш скрипт?
Я так понимаю, что нужно оставить Task и в коде прописать Ваш скрипт?
Begun999
да, оставить Task, убрать Run
поменять в IsTaskSelected имена Taskов
ну и для ubisoftlauncher добавить ещё одну проверку
да, оставить Task, убрать Run
поменять в IsTaskSelected имена Taskов
ну и для ubisoftlauncher добавить ещё одну проверку
TaTTDoGG
Огромное СПАСИБО!!!
И ещё вопрос - Где прописывать? Можно везде?
Огромное СПАСИБО!!!
И ещё вопрос - Где прописывать? Можно везде?
Begun999
ну если в вашем коде нету процедуры CurStepChanged то везде где угодно. главное чтобы InstallAdditionalSoftware находилась выше CurStepChanged.
ну если в вашем коде нету процедуры CurStepChanged то везде где угодно. главное чтобы InstallAdditionalSoftware находилась выше CurStepChanged.
TaTTDoGG
Спасибо!!!
CurStepChanged Есть, буду пробовать. Ещё раз Спасибо!!!
Спасибо!!!
CurStepChanged Есть, буду пробовать. Ещё раз Спасибо!!!
Begun999
ещё небольшой совет
перед тем как выполнять InstallAdditionalSoftware нужно проверить не произошли ли в процессе установки какие-нибудь ошибки. например в модуле ISDone это нужно сделать так:
Код:
if not ISDoneError then
InstallAdditionalSoftware;
ещё небольшой совет
перед тем как выполнять InstallAdditionalSoftware нужно проверить не произошли ли в процессе установки какие-нибудь ошибки. например в модуле ISDone это нужно сделать так:
Код:
if not ISDoneError then
InstallAdditionalSoftware;
Доброго времени суток!
Не сочтите за офф топ, а просто ответьте или подскажите где поискать ответ.
Вопрос: нужна прога, перехватчик значений реестра, вносимых инсталлятором Install Shield, при установке приложения, ну или любым другим, спасибо.
Не сочтите за офф топ, а просто ответьте или подскажите где поискать ответ.
Вопрос: нужна прога, перехватчик значений реестра, вносимых инсталлятором Install Shield, при установке приложения, ну или любым другим, спасибо.
bongo123
2 варианта
1) распаковать installshield'овский exeшник. и запустить msi чтобы тот создал лог действий
2) скачать прогу Process Monitor http://technet.microsoft.com/ru-ru/sysinternals/bb896645
2 варианта
1) распаковать installshield'овский exeшник. и запустить msi чтобы тот создал лог действий
2) скачать прогу Process Monitor http://technet.microsoft.com/ru-ru/sysinternals/bb896645
Kizyak
Очевидно же, слэш забыли в {app}Demonstone.exe, но думаю вы и сами уже увидели.
Очевидно же, слэш забыли в {app}Demonstone.exe, но думаю вы и сами уже увидели.
notAlx
спасибо, не углядел)
спасибо, не углядел)
Здраствуйте.
Проблема в том что на разных системах по со всем по разному отображаются шрифты,графика и т.б
Просьба кого не затруднит протестировать его,о результатах писать в лс
http://zalil.ru/upload/32167151
http://rghost.ru/32670311
Проблема в том что на разных системах по со всем по разному отображаются шрифты,графика и т.б
Просьба кого не затруднит протестировать его,о результатах писать в лс
http://zalil.ru/upload/32167151
http://rghost.ru/32670311
Saturas32
а результат состоит в том, что в вашем exe файле находится троян
а результат состоит в том, что в вашем exe файле находится троян
Подскажите, а возможен ли вообще вызов в коде колбэк-функций WinAPI, вроде EnumWindows? Пытаюсь перевести такой дельфи-код:
Код:
function EnumWindowsProc(Window: HWND; Found: PLongBool): LongBool; stdcall;
begin
Result := True;
if (Window <> 0) then
Found^ := True;
end;
procedure Stop;
var
Found: LongBool;
begin
Found := False;
EnumWindows(@EnumWindowsProc, LongWord(@Found));
if Found then
Sleep(500);
end;
Код:
function EnumWindowsProc(Window: HWND; Found: PLongBool): LongBool; stdcall;
begin
Result := True;
if (Window <> 0) then
Found^ := True;
end;
procedure Stop;
var
Found: LongBool;
begin
Found := False;
EnumWindows(@EnumWindowsProc, LongWord(@Found));
if Found then
Sleep(500);
end;
Добрый вечер!
Подскажите пожалуйста, как разбить игру на 3 диска?
Есть файлы:
Папка - Soft
autorun.inf
setup.exe
DVD1.bin
DVD2.bin
DVD3.bin
Сжималось всё фриарком. Вопрос, как прописать здесь???
[more]repeat
MyError:=true;
if not ISDoneInitialize(ExpandConstant('{src}\records.inf'), $F777, Comps1,Comps2,Comps3, 0, false, MainForm.Handle, {#NeedMem}, @ProgressCallback) then break;
repeat
if not ISArcExtract ( 0, 0, ExpandConstant('{src}\*.bin'), ExpandConstant('{app}'), false, '', '', ExpandConstant('{app}'), notPCFonFLY {PCFonFLY}) then break;
// примеры использования компонентов и всплывающего запроса следующего диска:
//if not ShowChangeDiskWindow('Пожалуйста, вставьте диск 2 и дождитесь его инициализации.', ExpandConstant('{src}'),'CODMW2_Disk2.arc' ) then break;
//if not ISArcExtract ( 1, 0, ExpandConstant('{src}\bin\data1.bin'), ExpandConstant('{app}'), false, '', '', '', notPCFonFLY ) then break;
//if not ISArcExtract ( 2, 0, ExpandConstant('{src}\bin\data1.bin'), ExpandConstant('{app}'), false, '', '', '', notPCFonFLY ) then break;
//if not ISArcExtract ( 3, 0, ExpandConstant('{src}\bin\data4.bin'), ExpandConstant('{app}'), false, '', '', '', notPCFonFLY ) then break;
//if not ISArcExtract ( 4, 0, ExpandConstant('{src}\engvoice.arc'), ExpandConstant('{app}'), false, '', '', '', notPCFonFLY ) then break;
//if not ISArcExtract ( 5, 0, ExpandConstant('{src}\bin\data4.bin'), ExpandConstant('{app}'), false, '', '', '', notPCFonFLY ) then break;
(* if not ISArcExtract ( 6, 0, ExpandConstant('{src}\engvoice.arc'), ExpandConstant('{app}'), false, '', '', '', notPCFonFLY ) then break;
if not ShowChangeDiskWindow('Пожалуйста, вставьте первый диск и дождитесь его инициализации.', ExpandConstant('{src}'),'CODMW_2.arc' ) then break;[/more]
Подскажите пожалуйста, как разбить игру на 3 диска?
Есть файлы:
Папка - Soft
autorun.inf
setup.exe
DVD1.bin
DVD2.bin
DVD3.bin
Сжималось всё фриарком. Вопрос, как прописать здесь???
[more]repeat
MyError:=true;
if not ISDoneInitialize(ExpandConstant('{src}\records.inf'), $F777, Comps1,Comps2,Comps3, 0, false, MainForm.Handle, {#NeedMem}, @ProgressCallback) then break;
repeat
if not ISArcExtract ( 0, 0, ExpandConstant('{src}\*.bin'), ExpandConstant('{app}'), false, '', '', ExpandConstant('{app}'), notPCFonFLY {PCFonFLY}) then break;
// примеры использования компонентов и всплывающего запроса следующего диска:
//if not ShowChangeDiskWindow('Пожалуйста, вставьте диск 2 и дождитесь его инициализации.', ExpandConstant('{src}'),'CODMW2_Disk2.arc' ) then break;
//if not ISArcExtract ( 1, 0, ExpandConstant('{src}\bin\data1.bin'), ExpandConstant('{app}'), false, '', '', '', notPCFonFLY ) then break;
//if not ISArcExtract ( 2, 0, ExpandConstant('{src}\bin\data1.bin'), ExpandConstant('{app}'), false, '', '', '', notPCFonFLY ) then break;
//if not ISArcExtract ( 3, 0, ExpandConstant('{src}\bin\data4.bin'), ExpandConstant('{app}'), false, '', '', '', notPCFonFLY ) then break;
//if not ISArcExtract ( 4, 0, ExpandConstant('{src}\engvoice.arc'), ExpandConstant('{app}'), false, '', '', '', notPCFonFLY ) then break;
//if not ISArcExtract ( 5, 0, ExpandConstant('{src}\bin\data4.bin'), ExpandConstant('{app}'), false, '', '', '', notPCFonFLY ) then break;
(* if not ISArcExtract ( 6, 0, ExpandConstant('{src}\engvoice.arc'), ExpandConstant('{app}'), false, '', '', '', notPCFonFLY ) then break;
if not ShowChangeDiskWindow('Пожалуйста, вставьте первый диск и дождитесь его инициализации.', ExpandConstant('{src}'),'CODMW_2.arc' ) then break;[/more]
Begun999
из спавки по ISDone
Цитата:
думаю тут все понятно. Единственное стоит упомянуть, что в функции ShowChangeDiskWindow последним параметром необходимо указывать ЛЮБОЙ файл, находящийся ТОЛЬКО на втором диске. Для третьего, четвертного и т.д. делается по аналогии.
из спавки по ISDone
Цитата:
Пример 3 : запрос второго диска.
Код: ISDoneError:=true;
if ISDoneInit(ExpandConstant('{src}\records.inf'), $F777, Comps1,Comps2,Comps3, MainForm.Handle, {#NeedMem}, @ProgressCallback) then begin
repeat
if not FileSearchInit(false) then break;
if not ISArcExtract ( 0, 0, ExpandConstant('{src}\data00.arc'), ExpandConstant('{app}'), '', false, '', '', '', notPCFonFLY) then break;
if not ISArcExtract ( 0, 0, ExpandConstant('{src}\data00.arc'), ExpandConstant('{app}'), '', false, '', '', '', notPCFonFLY) then break;
if not ShowChangeDiskWindow('Пожалуйста, вставьте диск 2 и дождитесь его инициализации.', ExpandConstant('{src}'),'data03.arc') then break;
if not ISArcExtract ( 0, 0, ExpandConstant('{src}\data02.arc'), ExpandConstant('{app}'), '', false, '', '', '', notPCFonFLY) then break;
if not ISArcExtract ( 0, 0, ExpandConstant('{src}\data03.arc'), ExpandConstant('{app}'), '', false, '', '', '', notPCFonFLY) then break;
ISDoneError:=false;
until true;
ISDoneStop;
end;
думаю тут все понятно. Единственное стоит упомянуть, что в функции ShowChangeDiskWindow последним параметром необходимо указывать ЛЮБОЙ файл, находящийся ТОЛЬКО на втором диске. Для третьего, четвертного и т.д. делается по аналогии.
Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
Предыдущая тема: поиск
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.