Форум: "Начинающим";
Текущий архив: 2008.09.14;
Скачать: [xml.tar.bz2];
ВнизВопрос по скрипиту на delphi Найти похожие ветки
← →
Noobik (2008-07-31 22:46) [0]Есть код... Но где то в нём ошибка... Это код для инсталлера. Он на Delphi
а я 0 в программировании - не знаю у кого ещё спросить...; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
#define MyAppName "Doom Remake 3: Risen Version"
#define MyAppVerName "Doom Remake 3: Risen Version"
#define MyAppPublisher "Doomerzed"
#define MyAppURL "http://site.ru"
#define MyAppExeName "MyProg.exe"
[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{B7B472AC-0DB2-4C41-B51E-C8959EE82CCD}
AppName={#MyAppName}
AppVerName={#MyAppVerName}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
CreateAppDir=no
LicenseFile=C:\Risen3D\licen.txt
InfoBeforeFile=C:\Risen3D\Readit.txt
OutputDir=C:\Documents and Settings\User\Desktop
OutputBaseFilename=setup
SetupIconFile=C:\Documents and Settings\User\Desktop\doom.ico
Compression=lzma
SolidCompression=yes
WindowVisible=yes
WindowResizable=no
WindowShowCaption=no
[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
Name: "french"; MessagesFile: "compiler:Languages\French.isl"
Name: "german"; MessagesFile: "compiler:Languages\German.isl"
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"
Name: "spanish"; MessagesFile: "compiler:Languages\Spanish.isl"
[Files]
Source: "C:\Risen3D\*"; DestDir: "{win}"; Flags: ignoreversion recursesubdirs createallsubdirs
; NOTE: Don"t use "Flags: ignoreversion" on any shared system files
Source: C:\isxbb.dll; DestDir: {tmp}; Flags: dontcopy
//files to slideshow
Source: C:\pack\0.jpg; DestDir: {tmp}; Flags: dontcopy
Source: C:\pack\1.jpg; DestDir: {tmp}; Flags: dontcopy
Source: C:\pack\2.jpg; DestDir: {tmp}; Flags: dontcopy
Source: C:\pack\3.jpg; DestDir: {tmp}; Flags: dontcopy
Source: C:\pack\4.jpg; DestDir: {tmp}; Flags: dontcopy
Source: C:\pack\5.jpg; DestDir: {tmp}; Flags: dontcopy
Source: C:\pack\6.jpg; DestDir: {tmp}; Flags: dontcopy
Source: C:\pack\7.jpg; DestDir: {tmp}; Flags: dontcopy
Source: C:\pack\8.jpg; DestDir: {tmp}; Flags: dontcopy
Source: "C:\BASS.dll"; DestDir: "{tmp}"; Flags: dontcopy
Source: "C:\pack\d_e1m1.ogg"; DestDir: "{tmp}"; Flags: dontcopy
[Code]
const
BACKGROUND=6;
TIMER=16;
function isxbb_AddImage(Image: PChar; Flags: Cardinal): Integer;
external "isxbb_AddImage@files:isxbb.dll stdcall";
function isxbb_Init(hWnd: Integer): Integer;
external "isxbb_Init@files:isxbb.dll stdcall";
function isxbb_StartTimer(Seconds: Integer; Flags: Cardinal): Integer;
external "isxbb_StartTimer@files:isxbb.dll stdcall";
function isxbb_KillTimer(Flags: Cardinal): Integer;
external "isxbb_KillTimer@files:isxbb.dll stdcall";
procedure InitializeWizard();
begin
ExtractTemporaryFile("1.jpg");
isxbb_AddImage(ExpandConstant("{tmp}")+"\1.jpg",BACKGROUND);
isxbb_Init(StrToInt(ExpandConstant("{hwnd}")));
end;
procedure CurStepChanged(CurStep: TSetupStep);
begin
//что-то начинается
if CurStep=ssInstall
then
begin
ExtractTemporaryFile("2.jpg");
ExtractTemporaryFile("3.jpg");
ExtractTemporaryFile("4.jpg");
ExtractTemporaryFile("5.jpg");
ExtractTemporaryFile("6.jpg");
ExtractTemporaryFile("7.jpg");
ExtractTemporaryFile("8.jpg");
isxbb_AddImage(ExpandConstant("{tmp}")+"\2.jpg",BACKGROUND or TIMER);
isxbb_AddImage(ExpandConstant("{tmp}")+"\3.jpg",BACKGROUND or TIMER);
isxbb_AddImage(ExpandConstant("{tmp}")+"\4.jpg",BACKGROUND or TIMER);
isxbb_AddImage(ExpandConstant("{tmp}")+"\5.jpg",BACKGROUND or TIMER);
isxbb_AddImage(ExpandConstant("{tmp}")+"\6.jpg",BACKGROUND or TIMER);
isxbb_AddImage(ExpandConstant("{tmp}")+"\7.jpg",BACKGROUND or TIMER);
isxbb_AddImage(ExpandConstant("{tmp}")+"\8.jpg",BACKGROUND or TIMER);
isxbb_Init(StrToInt(ExpandConstant("{hwnd}")));
isxbb_StartTimer(2,BACKGROUND)
end
else if CurStep=ssPostInstall then
isxbb_KillTimer(BACKGROUND);
end;
const
BASS_SAMPLE_LOOP = 4;
type
HSTREAM = DWORD;
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 delayload";
function BASS_Start(): Boolean;
external "BASS_Start@files:BASS.dll stdcall delayload";
function BASS_ChannelPlay(handle: DWORD; restart: BOOL): Boolean;
external "BASS_ChannelPlay@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";
procedure InitializeWizard();
var
Name1: string;
i: Integer;
begin
ExtractTemporaryFile("BASS.dll");
ExtractTemporaryFile("d_e1m1.ogg");
if BASS_Init(-1, 44100, 0, 0, 0) then
begin
BASS_Start();
Name1:=ExpandConstant("{tmp}\d_e1m1.ogg");
i:=BASS_StreamCreateFile(FALSE, PChar(Name1), 0, 0, 4);
if i <> 0 then
begin
BASS_ChannelPlay(i, True);
end;
end;
end;
procedure DeInitializeSetup();
begin
BASS_Stop();
BASS_Free();
end;
procedure CancelButtonClick(CurPage: Integer; var Cancel, Confirm: Boolean);
begin
Cancel:=False;
Confirm:=False;
if MsgBox("Хорошенько поDOOMайте прежде чем отменить установку! Вы действительно не любите Doom?",
mbError, MB_YESNO) = idYes
then
Cancel:=true;
end;
[Icons]
Name: "{commonprograms}\Doom Remake3"; Filename: "{app}\Risen3D\R3DLaunch\r3dlauncher.exe"; WorkingDir:
{app}\Risen3D\R3DLaunch
Проблема в процедуре InitializeWizard которая вызывается дважды...
Как это исправить?
← →
Поросенок Винни-Пух © (2008-07-31 22:50) [1]это скрипт на Inno. Не на делфи
← →
Noob (2008-07-31 23:19) [2]Но написан он используя синтаксис от делфи..
← →
Noobik (2008-07-31 23:22) [3]Хотя бы ту часть что я показал... там где InitializeWizard ... это явно
кусок чисто программерский... все эти procesure, begin... в этом хоть как то
можно наверное разобраться тем кто знает языки программирования? Или нет?
Я не знаю... Если кто знает - то помогите пожалуйста.
← →
tesseract © (2008-07-31 23:30) [4]
> Если кто знает - то помогите пожалуйста.
Помочь в чём ? Я неплохо знаю inno, но код странноват. Не похож на мои разработки. И слишком много всяких extract.
← →
Сергей М. © (2008-08-01 17:49) [5]
> Он на Delphi
Он не на Delphi.
Это InnerFuse Pascal Script.
← →
Cobalt (2008-08-02 09:07) [6]А в чем ошибка-то заключается?
И на каком этапе происходит?
← →
Правильный$Вася (2008-08-02 15:34) [7]
> Проблема в процедуре InitializeWizard которая вызывается
> дважды...Как это исправить?
ну, она не вызывается, а описана дважды
уж не знаю, нормально ли это для Inno, но для языков программирования это требует специальных бубнов
а что это за Doom3 и откуда взялся-таки скрипт? может, спросить у его автора?
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.09.14;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.048 c