Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 3]
Народ тут увидел один репак очень оформление понравилось может кто-нибудь что-нибудь подобное своять?
http://play-game-ru.ucoz.ru/_ph/3/2/430692422.jpg
insombia
11-04-2011, 21:52
У когото есть скрипт на кнопки музыки вместе с картинкой?
insombia, http://forum.ru-board.com/topic.cgi?forum=5&topic=33457&start=0&limit=1&m=2#1 вот здесь самая первая библиотека bass.dll там же есть скрипт)))
Gnom_aka_Lexander
12-04-2011, 11:29
Подскадите, пожалуйста, как на одну кнопку повесить несколько кликов?
procedure Click(Sender: TObject);
begin
if OnClick then
TwoClick else OnClick;
end;
................
BackButton.OnClick := @Click;
процедура Click выбивает ошибку на then, мне нужно, чтоб по нажатию на кнопку заменялся ее OnClick
Интересный дефолтный [Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application
[_Code]
procedure InitializeWizard();
begin
WizardForm.Color := clSilver;
WizardForm.AutoScroll := False;
WizardForm.ClientHeight := ScaleY(395);
WizardForm.ClientWidth := ScaleX(635);
WizardForm.WizardBitmapImage.Width := ScaleX(170);
WizardForm.WizardBitmapImage.Height := WizardForm.ClientHeight;
WizardForm.WizardBitmapImage.Parent := WizardForm;
WizardForm.OuterNotebook.Left := WizardForm.WizardBitmapImage.Width;
WizardForm.OuterNotebook.Width := WizardForm.ClientWidth-WizardForm.WizardBitmapImage.Width;
WizardForm.OuterNotebook.Height := ScaleY(345);
WizardForm.Bevel.Left := WizardForm.WizardBitmapImage.Width;
WizardForm.Bevel.Top := WizardForm.OuterNotebook.Height;
WizardForm.Bevel.Width := WizardForm.OuterNotebook.Width;
WizardForm.InnerNotebook.Left := ScaleX(8);
WizardForm.InnerNotebook.Width := WizardForm.OuterNotebook.Width-16;
WizardForm.InnerPage.Color := clSilver;
WizardForm.MainPanel.Left := WizardForm.WizardBitmapImage.Width;
WizardForm.MainPanel.Width := WizardForm.ClientWidth-WizardForm.WizardBitmapImage.Width;
WizardForm.MainPanel.Parent := WizardForm;
WizardForm.MainPanel.Color := clGray;
WizardForm.WizardSmallBitmapImage.Left := WizardForm.MainPanel.Width-WizardForm.WizardSmallBitmapImage.Width;
WizardForm.WizardSmallBitmapImage.Top := ScaleY(0);
WizardForm.PageDescriptionLabel.Left := ScaleX(32);
WizardForm.PageDescriptionLabel.Width := WizardForm.MainPanel.Width-WizardForm.WizardSmallBitmapImage.Width-WizardForm.PageDescriptionLabel.Left;
WizardForm.PageNameLabel.Width := WizardForm.MainPanel.Width-WizardForm.WizardSmallBitmapImage.Width-WizardForm.PageNameLabel.Left-10;
WizardForm.BeveledLabel.Left := WizardForm.WizardBitmapImage.Width;
WizardForm.BeveledLabel.Top := WizardForm.OuterNotebook.Height;
WizardForm.CancelButton.Left := ScaleX(535);
WizardForm.CancelButton.Top := ScaleY(360);
WizardForm.NextButton.Left := ScaleX(445);
WizardForm.NextButton.Top := ScaleY(360);
WizardForm.BackButton.Left := ScaleX(365);
WizardForm.BackButton.Top := ScaleY(360);
WizardForm.WelcomePage.Color := clSilver;
WizardForm.WelcomeLabel2.Left := ScaleX(16);
WizardForm.WelcomeLabel2.Top := ScaleY(167);
WizardForm.WelcomeLabel2.Width := ScaleX(437);
WizardForm.WelcomeLabel2.Height := ScaleY(135);
WizardForm.WelcomeLabel1.Parent := WizardForm.MainPanel;
WizardForm.WelcomeLabel1.Left := ScaleX(0);
WizardForm.WelcomeLabel1.Top := ScaleY(20);
WizardForm.WelcomeLabel1.Width := WizardForm.MainPanel.Width;
WizardForm.LicenseNotAcceptedRadio.Left := ScaleX(24);
WizardForm.LicenseAcceptedRadio.Left := ScaleX(24);
WizardForm.LicenseMemo.Width := WizardForm.InnerNotebook.Width;
WizardForm.DirBrowseButton.Left := ScaleX(366);
WizardForm.DirBrowseButton.Top := ScaleY(81);
WizardForm.DiskSpaceLabel.Top := ScaleY(112);
WizardForm.GroupBrowseButton.Left := ScaleX(366);
WizardForm.GroupBrowseButton.Top := ScaleY(214);
WizardForm.GroupBrowseButton.Parent := WizardForm.SelectDirPage;
WizardForm.DirEdit.Left := ScaleX(24);
WizardForm.GroupEdit.Left := ScaleX(24);
WizardForm.GroupEdit.Top := ScaleY(216);
WizardForm.GroupEdit.Parent := WizardForm.SelectDirPage;
WizardForm.SelectGroupBitmapImage.Top := ScaleY(136);
WizardForm.SelectGroupBitmapImage.Parent := WizardForm.SelectDirPage;
WizardForm.NoIconsCheck.Top := ScaleY(220);
WizardForm.NoIconsCheck.Parent := WizardForm.SelectDirPage;
WizardForm.SelectStartMenuFolderBrowseLabel.Parent := WizardForm.SelectDirPage;
WizardForm.SelectStartMenuFolderBrowseLabel.Top := ScaleY(180);
WizardForm.SelectStartMenuFolderLabel.Parent := WizardForm.SelectDirPage;
WizardForm.SelectStartMenuFolderLabel.Top := ScaleY(145);
end;
procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID = wpWelcome then WizardForm.WizardSmallBitmapImage.Hide else WizardForm.WizardSmallBitmapImage.Show;
if CurPageID = wpWelcome then WizardForm.WelcomeLabel1.Show else WizardForm.WelcomeLabel1.Hide;
end;может кому пригодится в качестве базы :)
insombia
12-04-2011, 21:31
Как разделить установку на 2 диска чтобы каждый занимал по 4 30 гб хотябы?
как на одну кнопку повесить несколько кликов? »
Один из вариантов, это задавать свойство Tag := 0, 1 и так далее, выполняешь какой-то код, затем меняешь значения при каждом клике:
procedure Click(Sender: TObject);
begin
case TButton(Sender).Tag of
0:begin
{ выполняем какой-то код... }
{ присваиваем новое значение }
TButton(Sender).Tag := 1;
end;
1:begin
{ выполняем какой-то код... }
{ присваиваем новое значение }
TButton(Sender).Tag := 0;
end;
end;
{ для примера, отобразим в зоголовке }
WizardForm.Caption := 'BackButton.Tag := ' + IntToStr(TButton(Sender).Tag);
end;
процедура Click выбивает ошибку на then, мне нужно, чтоб по нажатию на кнопку заменялся ее OnClick »
Ну допустим на then ошибки быть не может, компилятор вам просто говорит, что для проверки условия данных не достаточно и тем более не понятно, что такое if OnClick then.
Если меняете стандартные функции кнопок, то лучше использовать их родные, такие как function BackButtonClick(CurPageID: Integer): Boolean;, а уже в них разрешать выполнение, либо запрещать.
как сделать так чтобы установщик дополнения брал значение в реестре и если его нет писал бы сообщение что прога не установлена вот мой пример только как то его доработать бы надо не знаю как. да и кстати устанавлиивать он должен из внешней папки
[Files]
Source: {src}\Content - Installer Data\*; DestDir: "{code:getData}"; Flags: skipifsourcedoesntexist ignoreversion external
function getData(S:String): String;
var
InsPath: String;
Reg: boolean;
begin
Reg := RegQueryStringValue(HKLM, 'SOFTWARE\Mycompany\Myproga, 'InstallPath', InsPath);
Result := InsPath;
end;
Habetdin
13-04-2011, 15:01
Arsi000, как-то так :)
[Files]
Source: {src}\Content - Installer Data\*; DestDir: "{reg:HKLM\SOFTWARE\My Company\My Program,InstallPath|{pf}\My Program}"; Flags: skipifsourcedoesntexist ignoreversion external
[code]
function DetectInstallRegKey: Boolean;
var
Path: string;
begin
if RegQueryStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\My Company\My Program', 'InstallPath', Path) then
if Path <> '' then
Result:= True
else
Result:= False;
end;
function InitializeSetup(): Boolean;
begin
Result:= DetectInstallRegKey;
if Result = False then
MsgBox('На вашем компьютере не найдена программа My Program.' + #13#10
'Установка дополнения к My Program невозможна!', mbInformation, MB_OK);
end;
Ребят есть вопрос: Как в этом скрипте:
[Setup]
AppName=My Program
AppVerName=My Program
DefaultDirName={pf}\My Program
OutputDir=userdocs:InnoSetupTest.
[CustomMessages]
ProgressBar_Caption=ProgressBar Caption
ProgressBar_Description=ProgressBar Description
[Code]
var
DSProgressBar: TNewProgressBar;
{ ProgressBar_Activate }
procedure ProgressBar_Activate(Page: TWizardPage);
begin
// enter code here...
end;
{ ProgressBar_ShouldSkipPage }
function ProgressBar_ShouldSkipPage(Page: TWizardPage): Boolean;
begin
Result := False;
end;
{ ProgressBar_BackButtonClick }
function ProgressBar_BackButtonClick(Page: TWizardPage): Boolean;
begin
Result := True;
end;
{ ProgressBar_NextkButtonClick }
function ProgressBar_NextButtonClick(Page: TWizardPage): Boolean;
begin
Result := True;
end;
{ ProgressBar_CancelButtonClick }
procedure ProgressBar_CancelButtonClick(Page: TWizardPage; var Cancel, Confirm: Boolean);
begin
// enter code here...
end;
{ ProgressBar_CreatePage }
function ProgressBar_CreatePage(PreviousPageId: Integer): Integer;
var
Page: TWizardPage;
begin
Page := CreateCustomPage(
PreviousPageId,
ExpandConstant('{cm:ProgressBar_Caption}'),
ExpandConstant('{cm:ProgressBar_Description}')
);
{ DSProgressBar }
DSProgressBar := TNewProgressBar.Create(Page);
with DSProgressBar do
begin
Parent := Page.Surface;
Left := ScaleX(0);
Top := ScaleY(88);
Width := ScaleX(413);
Height := ScaleY(49);
Min := 0;
Max := 100;
end;
with Page do
begin
OnActivate := @ProgressBar_Activate;
OnShouldSkipPage := @ProgressBar_ShouldSkipPage;
OnBackButtonClick := @ProgressBar_BackButtonClick;
OnNextButtonClick := @ProgressBar_NextButtonClick;
OnCancelButtonClick := @ProgressBar_CancelButtonClick;
end;
Result := Page.ID;
end;
{ ProgressBar_InitializeWizard }
procedure InitializeWizard();
begin
ProgressBar_CreatePage(wpInstalling);
end;
Заменить стандартный прогресс-бар,тем что появляется в конце страницы,пробовал wpInstalling,не помогло,появляется,сразу после установки...Please Help!
Ребят есть вопрос: Как в этом скрипте:
[Setup]
AppName=My Program
AppVerName=My Program
DefaultDirName={pf}\My Program
OutputDir=userdocs:InnoSetupTest.
[CustomMessages]
ProgressBar_Caption=ProgressBar Caption
ProgressBar_Description=ProgressBar Description
[code]
var
DSProgressBar: TNewProgressBar;
{ ProgressBar_Activate }
procedure ProgressBar_Activate(Page: TWizardPage);
begin
// enter code here...
end;
{ ProgressBar_ShouldSkipPage }
function ProgressBar_ShouldSkipPage(Page: TWizardPage): Boolean;
begin
Result := False;
end;
{ ProgressBar_BackButtonClick }
function ProgressBar_BackButtonClick(Page: TWizardPage): Boolean;
begin
Result := True;
end;
{ ProgressBar_NextkButtonClick }
function ProgressBar_NextButtonClick(Page: TWizardPage): Boolean;
begin
Result := True;
end;
{ ProgressBar_CancelButtonClick }
procedure ProgressBar_CancelButtonClick(Page: TWizardPage; var Cancel, Confirm: Boolean);
begin
// enter code here...
end;
{ ProgressBar_CreatePage }
function ProgressBar_CreatePage(PreviousPageId: Integer): Integer;
var
Page: TWizardPage;
begin
Page := CreateCustomPage(
PreviousPageId,
ExpandConstant('{cm:ProgressBar_Caption}'),
ExpandConstant('{cm:ProgressBar_Description}')
);
{ DSProgressBar }
DSProgressBar := TNewProgressBar.Create(Page);
with DSProgressBar do
begin
Parent := Page.Surface;
Left := ScaleX(0);
Top := ScaleY(88);
Width := ScaleX(413);
Height := ScaleY(49);
Min := 0;
Max := 100;
end;
with Page do
begin
OnActivate := @ProgressBar_Activate;
OnShouldSkipPage := @ProgressBar_ShouldSkipPage;
OnBackButtonClick := @ProgressBar_BackButtonClick;
OnNextButtonClick := @ProgressBar_NextButtonClick;
OnCancelButtonClick := @ProgressBar_CancelButtonClick;
end;
Result := Page.ID;
end;
{ ProgressBar_InitializeWizard }
procedure InitializeWizard();
begin
ProgressBar_CreatePage(wpInstalling);
end;
Заменить стандартный прогресс-бар,тем что появляется в конце страницы,пробовал wpInstalling,не помогло,появляется,сразу после установки...Please Help!
как мне после установки была галка "посетить сайт" и выйти туда
R.i.m.s.k.y.
14-04-2011, 19:27
как мне после установки была галка "посетить сайт" и выйти туда »
Filename: http://www.SVP-Team.com; Description: Сходить на сайтег; Flags: shellexec skipifsilent postinstall Unchecked
insombia
14-04-2011, 22:03
Как сделать чтобы установочный файлы были фриарк и по нажатию на них они распаковывали файлы в папку какуюто?
david141
15-04-2011, 07:03
У меня три вопроса если можно.
Как сделать такое окно после окна приветствия?
http://i071.radikal.ru/1104/be/5d90e288abe3.jpg
Как сделать выбор браузера по умолчанию?
http://i040.radikal.ru/1104/30/3402cef21d9c.jpg
Как сделать так чтобы файлы были не в setup.exe а подхватывались из папки?
http://s010.radikal.ru/i311/1104/9d/6e3193b13b2b.jpg
СПАСИБО.
Gnom_aka_Lexander
15-04-2011, 09:35
LordSP, david141, Как сделать, чтобы получить ответ на свой вопрос?
1. Научиться оформлять посты и пользоваться тегами, дабы не замусоривать форум.
2. Научиться пользоваться поиском, - ответ ты получиш только в том случае, если подобного вопроса не было.
3. научится читать справку к программе - на третий твой вопрос ответ знает даже школьник.
R.i.m.s.k.y.
15-04-2011, 10:09
Как сделать так чтобы файлы были не в setup.exe а подхватывались из папки? »
Гы, ответ даже на этой странице есть, и не в шапке!
Ребят еще такой вопрос,мучаюсь с этим скриптом никак понять не могу,как соединить так чтобы,путь присваивался из кода,если нет,выдавал сообщения о не нахождении пути,и еще чтобы сразу проверялась версия,если не совпадает с заданной,тоже появляется сообщение и установка прекращается,но есть еще и такой вопрос:Можно сделать чтобы сообщения появлялись по очереди,или же одним сообщением.
Вот скрипт: Сорри за то что целиком,просто не умею я спойлеры делать :-( Не судите строго!
[Setup]
AppName=GetDeviceInfo
AppVerName=GetDeviceInfo
DefaultDirName={code:GetInstallDir}
DisableDirPage=yes
[Files]
Source: "D:\CDMS\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension
[Code]
Function GetInstallDir( AppID: String ): String; var dir: String;
begin
RegQueryStringValue(HKCU, 'SOFTWARE\Matrix', 'Path', dir);
Result:= dir;
end;
function InitializeSetup1(): Boolean; var ResultStr: String;
begin
Result:= True;
if not RegValueExists(HKCU, 'SOFTWARE\Matrix','Path') then
begin
MsgBox('Путь установки не опознан!', mberror, mb_ok);
Result:=False;
exit;
end;
begin
RegQueryStringValue(HKCU, 'Software\Matrix', 'Version', ResultStr);
if ResultStr='1.1.0' then
begin
Result := MsgBox('Поиск установленных компонентов:' #13#13 'Компоненты найдены. Продолжить установку?', mbConfirmation, MB_YESNO) = idYes;
if Result = False then
MsgBox('Поиск установленных компонентов:' #13#13 'Установка прервана.', mbInformation, MB_OK);
end
else MsgBox('Поиск установленных компонентов:' #13#13 'Версия неверна!!', mbConfirmation, MB_OK);
end
end;
VonFront
15-04-2011, 17:37
Добрый день, есть два простых вопроса, и более того ответы на них скорее всего уже есть, но увы нет времени искать.
Подскажите или ткните носом куда надо.
Inno Setup версия 5,4,2
вопрос первый как правильно прописать чтоб файлы скидывались по такому пути?
%userprofile%\Application Data\ПАПКА\ а то inno setup почему то на рабочем столе создает %userprofile%
как я понял verysilent и silent устонавливают в тихую, но мне надо чтоб установочный файл после копирования запускался, а не остовался лежать, тоесть надо убрать возможность снять галочку "Запустить ПО" по оканчании установки, чтоб он это автоматом делал.
И как его попросить чтоб он не создовал файлы деинсталяции unins000.exe unins000.dat
Спасибо, надеюсь на понимание, правда совсем нет времени читать всю ветку.
VonFront
15-04-2011, 17:48
Добрый день, есть два простых вопроса, и более того ответы на них скорее всего уже есть, но увы нет времени искать.
Подскажите или ткните носом куда надо.
Inno Setup версия 5,4,2
вопрос первый как правильно прописать чтоб файлы скидывались по такому пути?
%userprofile%\Application Data\ПАПКА\ а то inno setup почему то на рабочем столе создает %userprofile%
как я понял verysilent и silent устонавливают в тихую, но мне надо чтоб установочный файл после копирования запускался, а не остовался лежать, тоесть надо убрать возможность снять галочку "Запустить ПО" по оканчании установки, чтоб он это автоматом делал.
И как его попросить чтоб он не создовал файлы деинсталяции unins000.exe unins000.dat
Спасибо, надеюсь на понимание, правда совсем нет времени читать всю ветку.
murlakatamenka
15-04-2011, 18:14
VonFront, в инно свои переменные есть (можно посмотреть в родном help-е)
путь для вашего скрипта - {userappdata}/ПАПКА
для запуска файла используйте
[Run]
Filename: "путь к файлу"; Flags: shellexec postinstall
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.