Показать полную графическую версию : [архив] Скрипты Inno Setup. Помощь и советы [часть 2]
народ помогите со скриптом, чтобы перед установкой программы появлялось ЛОГО проги »
Пробуйте
Помогите обьеденить скрипты 7z и скрипт от YURSHAT,а то я уже 2 день мучаюсь,заранее спасибо
[Setup]
AppName=My Program
AppVerName=My Program version 1.5
OutputDir=D:\New
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
Compression=none
InternalCompressLevel=none
DiskSpanning=true
DiskSliceSize=1457664000
[Languages]
Name: rus; MessagesFile: compiler:Languages\Russian.isl
[Files]
Source: is7z.dll; DestDir: {tmp}; Flags: dontcopy
Source: D:\New\Dirt.7z; DestDir: {app}; Flags: external deleteafterinstall
[Icons]
Name: {group}\Удалить; IconFilename: {app}\unins000.exe; Filename: {app}\unins000.exe
[UninstallDelete]
Type: filesandordirs; Name: {app}
[Code]
var
ProgressBar : TNewProgressBar;
ExtractFile:TNewStaticText;
Button1:TButton;
procedure Extract7z (hWnd, hpb, hst: THandle; fpath, extractPath, pass:pchar); external 'Extract7z@files:is7z.dll stdcall';
procedure CancelExtract; external 'CancelExtract@files:is7z.dll stdcall';
procedure InitializeWizard();
begin
ProgressBar := TNewProgressBar.Create(WizardForm);
ExtractFile:=TNewStaticText.Create(WizardForm);
with WizardForm.ProgressGauge do
begin
ProgressBar.Left := Left;
ProgressBar.Top := Top + ScaleX(55);
ProgressBar.Width := Width;
ProgressBar.Height := Height;
ProgressBar.Parent := WizardForm.InstallingPage;
ProgressBar.max := 100;
ProgressBar.Position := 0;
ExtractFile.parent:=WizardForm.InstallingPage;
ExtractFile.autosize:=false;
ExtractFile.Width := Width;
ExtractFile.top:=Top + ScaleX(35);
ExtractFile.caption:='Распаковка архива 7zip';
end;
end;
procedure Button1OnClick(Sender: TObject);
begin
CancelExtract;
end;
procedure CurStepChanged(CurStep: TSetupStep);
begin
If CurStep=ssPostInstall then
begin
Button1:=TButton.create(WizardForm);
Button1.parent:=WizardForm;
Button1.width:=135;
Button1.caption:='Отменить распаковку';
Button1.left:=260;
Button1.top:=WizardForm.cancelbutton.top;
Button1.OnClick:=@Button1OnClick;
try
Extract7z (wizardform.handle, progressbar.handle, ExtractFile.handle, ExpandConstant('{src}') + '\Dirt.7z', ExpandConstant('{app}'), '');
Button1.visible:=false;
except
MsgBox('Неверный пароль!', mbInformation, MB_OK);
Button1.visible:=false;
end;
end;
end;
Подскажите как бороться с этой проблемой?
http://keep4u.ru/imgs/s/2010/02/27/65/659f6ae4ef5e8768e3ef9e8dac719751.jpg (http://keep4u.ru/full/659f6ae4ef5e8768e3ef9e8dac719751.html)
Подскажите как бороться с этой проблемой? »
Все вопрос отклоняеться, разобрался. . .
Подскажите как в конце установки, убрать вот такой запрос " Запустить prog.exe" и стоит галочка!
Надеюсь на помощь!
Молодой, Подскажите как в конце установки, убрать вот такой запрос " Запустить prog.exe" и стоит галочка! »
Удалите из секции [Run] строчку
[Run]
Filename: "{app}\MyProg.exe"; Description: "{cm:LaunchProgram,My Program}"; Flags: nowait postinstall skipifsilent
paravozik2009
27-02-2010, 17:29
Присоеденяюсь к ImAge,!!
YURSHAT, спасибо за помощь!
svensoft
28-02-2010, 03:17
Как можно изменить надпись "Установка" в панели задач ?.. (когда инсталлятор работает).
svensoft
28-02-2010, 04:03
Sotonisto, splash.rar »
YURSHAT, manialogo.rar »
А музыку в них проиграть возможно, подобно как в AdvSplash.dll ?
mikrotok
28-02-2010, 05:08
Sotonisto, YURSHAT, благодарю за помощь
МИШАНЧИК
28-02-2010, 05:24
Подскажите пожалуйста!
Как сделать вот это:
[Tasks]
Name: task1; Description: Доп. программное обеспечение
Name: task1\task2; Description: DirectX
Name: task1\task3; Description: Visual C++
только через секцию [_Code]?
А музыку в них проиграть возможно, подобно как в AdvSplash.dll ? »
Нет ничего невозможного :). Правда пример который я выложил это не самый лучший вариант сделать сплэш. Просто mikrotok, хотел как у игромании, вот я и выложил скрипт (наверное вытянут из инсталла игромании).
Вот сделал пример: сплэш с проигрыванием музыки через IsSplash.dll от ExpeditoR. Лови (http://slil.ru/28718778)
Cartmans
28-02-2010, 16:20
Мне нужно сделать так, чтоб 2 скрипта вместе работали, а то при компилировании, выскакивает ошибка InitializeWizard
Вот первый скрипт - http://forum.oszone.net/post-1241045-224.html
Вот второй - const
Color = clblack;
procedure InitializeWizard();
begin
WizardForm.PageNameLabel.Font.Color:=clWhite;
WizardForm.Font.Color:=clWhite;
WizardForm.Color:=Color;
WizardForm.WelcomePage.Color:=Color;
WizardForm.InnerPage.Color:=Color;
WizardForm.FinishedPage.Color:=Color;
WizardForm.LicensePage.Color:=Color;
WizardForm.PasswordPage.Color:=Color;
WizardForm.InfoBeforePage.Color:=Color;
WizardForm.UserInfoPage.Color:=Color;
WizardForm.SelectDirPage.Color:=Color;
WizardForm.SelectComponentsPage.Color:=Color;
WizardForm.SelectProgramGroupPage.Color:=Color;
WizardForm.SelectTasksPage.Color:=Color;
WizardForm.ReadyPage.Color:=Color;
WizardForm.PreparingPage.Color:=Color;
WizardForm.InstallingPage.Color:=Color;
WizardForm.InfoAfterPage.Color:=Color;
WizardForm.DirEdit.Color:=Color;
WizardForm.DiskSpaceLabel.Color:=Color;
WizardForm.DirEdit.Color:=Color;
WizardForm.GroupEdit.Color:=Color;
WizardForm.PasswordLabel.Color:=Color;
WizardForm.PasswordEdit.Color:=Color;
WizardForm.PasswordEditLabel.Color:=Color;
WizardForm.ReadyMemo.Color:=Color;
WizardForm.TypesCombo.Color:=Color;
WizardForm.WelcomeLabel1.Color:=Color;
WizardForm.InfoBeforeClickLabel.Color:=Color;
WizardForm.MainPanel.Color:=Color;
WizardForm.PageNameLabel.Color:=Color;
WizardForm.PageDescriptionLabel.Color:=Color;
WizardForm.ReadyLabel.Color:=Color;
WizardForm.FinishedLabel.Color:=Color;
WizardForm.YesRadio.Color:=Color;
WizardForm.NoRadio.Color:=Color;
WizardForm.WelcomeLabel2.Color:=Color;
WizardForm.LicenseLabel1.Color:=Color;
WizardForm.InfoAfterClickLabel.Color:=Color;
WizardForm.ComponentsList.Color:=Color;
WizardForm.ComponentsDiskSpaceLabel.Color:=Color;
WizardForm.BeveledLabel.Color:=Color;
WizardForm.StatusLabel.Color:=Color;
WizardForm.FilenameLabel.Color:=Color;
WizardForm.SelectDirLabel.Color:=Color;
WizardForm.SelectStartMenuFolderLabel.Color:=Color;
WizardForm.SelectComponentsLabel.Color:=Color;
WizardForm.SelectTasksLabel.Color:=Color;
WizardForm.LicenseAcceptedRadio.Color:=Color;
WizardForm.LicenseNotAcceptedRadio.Color:=Color;
WizardForm.UserInfoNameLabel.Color:=Color;
WizardForm.UserInfoNameEdit.Color:=Color;
WizardForm.UserInfoOrgLabel.Color:=Color;
WizardForm.UserInfoOrgEdit.Color:=Color;
WizardForm.PreparingLabel.Color:=Color;
WizardForm.FinishedHeadingLabel.Color:=Color;
WizardForm.UserInfoSerialLabel.Color:=Color;
WizardForm.UserInfoSerialEdit.Color:=Color;
WizardForm.TasksList.Color:=Color;
WizardForm.RunList.Color:=Color;
WizardForm.SelectDirBrowseLabel.Color:=Color;
WizardForm.SelectStartMenuFolderBrowseLabel.Color:=Color;
Мне нужно сделать так, чтоб 2 скрипта вместе работали, а то при компилировании, выскакивает ошибка »
[Setup]
AppId={{DB546B3D-B6ED-4E06-AA36-F051380E03CC}
AppName=My Program
AppVerName=My Program 1.5
DefaultDirName={pf}\My Program
[Languages]
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"
[Files]
Source: "C:\Program Files\Inno Setup 5\Examples\MyProg.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "DirBitmap.bmp"; DestDir: "{tmp}"; Flags: ignoreversion
Source: "GroupBitmap.bmp"; DestDir: "{tmp}"; Flags: ignoreversion
Source: button.bmp; DestDir: {tmp}; Flags: dontcopy
[Icons]
Name: "{group}\My Program"; Filename: "{app}\MyProg.exe"
Name: "{group}\{cm:UninstallProgram,My Program}"; Filename: "{uninstallexe}"
[Run]
Filename: "{app}\MyProg.exe"; Description: "{cm:LaunchProgram,My Program}"; Flags: nowait postinstall skipifsilent
[code_]
const
Color = clblack;
ButtonWidth = 80; //Указываем размер кнопок
ButtonHeight = 23;
bidBack = 0;
bidNext = 1;
bidCancel = 2;
bidDirBrowse = 3;
bidGroupBrowse = 4;
var
ButtonPanel: array [0..4] of TPanel;
ButtonImage: array [0..4] of TBitmapImage;
ButtonLabel: array [0..4] of TLabel;
procedure ButtonLabelClick(Sender: TObject);
var
Button: TButton;
begin
ButtonImage[TLabel(Sender).Tag].Left:=0
case TLabel(Sender).Tag of
bidBack: Button:=WizardForm.BackButton
bidNext: Button:=WizardForm.NextButton
bidCancel: Button:=WizardForm.CancelButton
bidDirBrowse: Button:=WizardForm.DirBrowseButton
bidGroupBrowse: Button:=WizardForm.GroupBrowseButton
else
Exit
end
Button.OnClick(Button)
end;
procedure ButtonLabelMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if ButtonLabel[TLabel(Sender).Tag].Enabled then
ButtonImage[TLabel(Sender).Tag].Left:=-ButtonWidth
end;
procedure ButtonLabelMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
ButtonImage[TLabel(Sender).Tag].Left:=0
end;
procedure LoadButtonImage(AButton: TButton; AButtonIndex: integer);
var
Image: TBitmapImage;
Panel: TPanel;
Labl: TLabel;
begin
Panel:=TPanel.Create(WizardForm)
Panel.Left:=AButton.Left
Panel.Top:=AButton.Top
Panel.Width:=AButton.Width
Panel.Height:=AButton.Height
Panel.Tag:=AButtonIndex
Panel.Parent:=AButton.Parent
ButtonPanel[AButtonIndex]:=Panel
Image:=TBitmapImage.Create(WizardForm) //Рисунок который ложится на кнопку
Image.Width:=160 //Обязательно прописать оригинальный размер рисунка
Image.Height:=23
Image.Enabled:=False
Image.Bitmap.LoadFromFile(ExpandConstant('{tmp}\button.bmp'))
Image.Parent:=Panel
ButtonImage[AButtonIndex]:=Image
with TLabel.Create(WizardForm) do begin
Tag:=AButtonIndex
Parent:=Panel
Width:=Panel.Width
Height:=Panel.Height
Transparent:=True
OnClick:=@ButtonLabelClick
OnDblClick:=@ButtonLabelClick
OnMouseDown:=@ButtonLabelMouseDown
OnMouseUp:=@ButtonLabelMouseUp
end
Labl:=TLabel.Create(WizardForm) //Текст кнопок
Labl.Left:=23 //Указываем положение текста
Labl.Top:=5
Labl.Autosize:=True
Labl.Alignment:=taCenter
Labl.Tag:=AButtonIndex
Labl.Transparent:=True
Labl.Font.Color:=clWhite //Цвет текста
Labl.Caption:=AButton.Caption
Labl.OnClick:=@ButtonLabelClick
Labl.OnDblClick:=@ButtonLabelClick
Labl.OnMouseDown:=@ButtonLabelMouseDown
Labl.OnMouseUp:=@ButtonLabelMouseUp
Labl.Parent:=Panel
ButtonLabel[AButtonIndex]:=Labl
end;
procedure UpdateButton(AButton: TButton;AButtonIndex: integer);
begin
ButtonLabel[AButtonIndex].Caption:=AButton.Caption
ButtonPanel[AButtonIndex].Visible:=AButton.Visible
ButtonLabel[AButtonIndex].Enabled:=Abutton.Enabled
end;
procedure LicenceAcceptedRadioOnClick(Sender: TObject);
begin
ButtonLabel[bidNext].Enabled:=True
end;
procedure LicenceNotAcceptedRadioOnClick(Sender: TObject);
begin
ButtonLabel[bidNext].Enabled:=False
end;
procedure CurPageChanged(CurPageID: Integer);
begin
UpdateButton(WizardForm.BackButton,bidBack)
UpdateButton(WizardForm.NextButton,bidNext)
UpdateButton(WizardForm.CancelButton,bidCancel)
ButtonLabel[bidBack].Left := (ButtonPanel[bidBack].Width / 2 - ButtonLabel[bidBack].Width / 2);
ButtonLabel[bidNext].Left := (ButtonPanel[bidNext].Width / 2 - ButtonLabel[bidNext].Width / 2);
ButtonLabel[bidCancel].Left := (ButtonPanel[bidCancel].Width / 2 - ButtonLabel[bidCancel].Width / 2);
ButtonLabel[bidDirBrowse].Left := (ButtonPanel[bidDirBrowse].Width / 2 - ButtonLabel[bidDirBrowse].Width / 2);
ButtonLabel[bidGroupBrowse].Left := (ButtonPanel[bidGroupBrowse].Width / 2 - ButtonLabel[bidGroupBrowse].Width / 2);
end;
procedure InitializeWizard();
begin
ExtractTemporaryFile('DirBitmap.bmp');
ExtractTemporaryFile('GroupBitmap.bmp');
WizardForm.SelectDirBitmapImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\DirBitmap.bmp'));
WizardForm.SelectDirBitmapImage.AutoSize:=true;
WizardForm.SelectGroupBitmapImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\GroupBitmap.bmp'));
WizardForm.SelectGroupBitmapImage.AutoSize:=true;
WizardForm.Font.Color:=clWhite;
WizardForm.Color:=Color;
WizardForm.WelcomePage.Color:=Color;
WizardForm.InnerPage.Color:=Color;
WizardForm.FinishedPage.Color:=Color;
WizardForm.LicensePage.Color:=Color;
WizardForm.PasswordPage.Color:=Color;
WizardForm.InfoBeforePage.Color:=Color;
WizardForm.UserInfoPage.Color:=Color;
WizardForm.SelectDirPage.Color:=Color;
WizardForm.SelectComponentsPage.Color:=Color;
WizardForm.SelectProgramGroupPage.Color:=Color;
WizardForm.SelectTasksPage.Color:=Color;
WizardForm.ReadyPage.Color:=Color;
WizardForm.PreparingPage.Color:=Color;
WizardForm.InstallingPage.Color:=Color;
WizardForm.InfoAfterPage.Color:=Color;
WizardForm.DirEdit.Color:=Color;
WizardForm.DiskSpaceLabel.Color:=Color;
WizardForm.DirEdit.Color:=Color;
WizardForm.GroupEdit.Color:=Color;
WizardForm.PasswordLabel.Color:=Color;
WizardForm.PasswordEdit.Color:=Color;
WizardForm.PasswordEditLabel.Color:=Color;
WizardForm.ReadyMemo.Color:=Color;
WizardForm.ReadyMemo.ScrollBars:= ssNone
WizardForm.TypesCombo.Color:=Color;
WizardForm.WelcomeLabel1.Color:=Color;
WizardForm.WelcomeLabel1.Font.Color:=clWhite;
WizardForm.InfoBeforeClickLabel.Color:=Color;
WizardForm.MainPanel.Color:=Color;
WizardForm.PageNameLabel.Color:=Color;
WizardForm.PageDescriptionLabel.Color:=Color;
WizardForm.ReadyLabel.Color:=Color;
WizardForm.FinishedLabel.Color:=Color;
WizardForm.YesRadio.Color:=Color;
WizardForm.NoRadio.Color:=Color;
WizardForm.WelcomeLabel2.Color:=Color;
WizardForm.LicenseLabel1.Color:=Color;
WizardForm.InfoAfterClickLabel.Color:=Color;
WizardForm.ComponentsList.Color:=Color;
WizardForm.ComponentsDiskSpaceLabel.Color:=Color;
WizardForm.BeveledLabel.Color:=Color;
WizardForm.StatusLabel.Color:=Color;
WizardForm.FilenameLabel.Color:=Color;
WizardForm.SelectDirLabel.Color:=Color;
WizardForm.SelectStartMenuFolderLabel.Color:=Color;
WizardForm.SelectComponentsLabel.Color:=Color;
WizardForm.SelectTasksLabel.Color:=Color;
WizardForm.LicenseAcceptedRadio.Color:=Color;
WizardForm.LicenseNotAcceptedRadio.Color:=Color;
WizardForm.UserInfoNameLabel.Color:=Color;
WizardForm.UserInfoNameEdit.Color:=Color;
WizardForm.UserInfoOrgLabel.Color:=Color;
WizardForm.UserInfoOrgEdit.Color:=Color;
WizardForm.PreparingLabel.Color:=Color;
WizardForm.FinishedHeadingLabel.Color:=Color;
WizardForm.FinishedHeadingLabel.Font.Color:=clWhite;
WizardForm.UserInfoSerialLabel.Color:=Color;
WizardForm.UserInfoSerialEdit.Color:=Color;
WizardForm.TasksList.Color:=Color;
WizardForm.RunList.Color:=Color;
WizardForm.SelectDirBrowseLabel.Color:=Color;
WizardForm.SelectStartMenuFolderBrowseLabel.Color:=Color;
WizardForm.PageNameLabel.Font.Color:=clWhite;
WizardForm.BackButton.Width:=ButtonWidth
WizardForm.BackButton.Height:=ButtonHeight
WizardForm.NextButton.Width:=ButtonWidth
WizardForm.NextButton.Height:=ButtonHeight
WizardForm.CancelButton.Width:=ButtonWidth
WizardForm.CancelButton.Height:=ButtonHeight
WizardForm.DirBrowseButton.Left:=337
WizardForm.DirBrowseButton.Width:=ButtonWidth
WizardForm.DirBrowseButton.Height:=ButtonHeight
WizardForm.GroupBrowseButton.Left:=337
WizardForm.GroupBrowseButton.Width:=ButtonWidth
WizardForm.GroupBrowseButton.Height:=ButtonHeight
WizardForm.LicenseAcceptedRadio.OnClick:=@LicenceAcceptedRadioOnClick
WizardForm.LicenseNotAcceptedRadio.OnClick:=@LicenceNotAcceptedRadioOnClick
ExtractTemporaryFile('button.bmp')
LoadButtonImage(WizardForm.BackButton,bidBack)
LoadButtonImage(WizardForm.NextButton,bidNext)
LoadButtonImage(WizardForm.CancelButton,bidCancel)
LoadButtonImage(WizardForm.DirBrowseButton,bidDirBrowse)
LoadButtonImage(WizardForm.GroupBrowseButton,bidGroupBrowse)
end;
svensoft
28-02-2010, 16:46
YURSHAT, спасибо !!! Раз нет ничего невозможного :) , то может помнишь YURSHAT, тему про слайд-шоу по ходу всех страниц инсталлятора с переходами, можно ли как-то сделать ? (проблемы там с лейблами были, уходили под слайды). и вот еще : Как можно изменить надпись "Установка" в панели задач ?.. (когда инсталлятор работает). И : mciSendString('play '+ExpandConstant('{tmp}\sound.mp3'), 'NULL', 0, 0) - Есть ли здесь параметр, отвечающий за повтор проигрывания ? .. :)
сплэш с проигрыванием музыки через IsSplash.dll от ExpeditoR »
у этой библиотеки есть 1 плюс
работает под win9x
и есть 3 минуса
1. сплэш имеет кнопку на панели задач
2. gif, png не поддерживает прозрачность (рабочего стола не будет видно под сплэшем)
3. при двух установленных мониторах (у меня телек как второй монитор подключен) сплэш выводится "между" мониторами
у этой библиотеки есть 1 плюс
работает под win9x
и есть 3 минуса »
Вывод: используйте isgsg.dll от South :wink:
то может помнишь YURSHAT, тему про слайд-шоу по ходу всех страниц инсталлятора с переходами, можно ли как-то сделать ? (проблемы там с лейблами были, уходили под слайды). »
Подожди немного, через пару дней доделаю свой новый инсталл, и эти вопросы улетучатся...
Как можно изменить надпись "Установка" в панели задач ? »
[Messages]
SetupAppTitle=Инсталляция
mciSendString('play '+ExpandConstant('{tmp}\sound.mp3'), 'NULL', 0, 0) - Есть ли здесь параметр, отвечающий за повтор проигрывания ? .. »
Описание функции
mciSendString(lpstrCommand, lpstrReturnString: PAnsiChar; uReturnLength: Cardinal; hWndCallback: HWND)
lpstrCommand - указывает на завершающуюся нулем строку с командой в следующей форме:
[команда][устройство][параметры]
lpstrReturnString - указывает на буфер для получения информации о результате. Если такая информация не нужна, то этот параметр устанавливается в NULL
uReturnLength - этот параметр указывает размер в символах определенного предыдущим параметром буфера. Если он не нужен, то устанавливается в 0
hwndCallback - указывает на окно отклика "возврата", если в командной строке указан параметр 'notify'. Если 'notify' не указан, то этот параметр устанавливается в NULL.
svensoft
28-02-2010, 21:16
YURSHAT
Подожди немного, через пару дней доделаю свой новый инсталл, и эти вопросы улетучатся... »
Потрясающая новость, буду очень очень ждать его появления !!! Можно просто сказать "ждунимагу" :cool:
[Messages]
SetupAppTitle=Инсталляция »
Спасибо !!! :up
lpstrCommand - указывает на завершающуюся нулем строку с командой в следующей форме:
[команда][устройство][параметры] »
Опиши пожалуйста, если не трудно [параметры] :)
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC