Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 3]
death7lord,
Ну вообще то это оффтопик, но анпакером распаковываются парочка *.pak-ов, и всё это потом отлично жмётся. Русская версия у меня - 3,30 гб, 3-х язычная - 4,26 гб.
death7lord
03-01-2011, 10:27
nik1967, можно расценивать как оффтоп, а может какие доп.программы кроме InnoSetup
Gnom_aka_Lexander
03-01-2011, 17:34
Кому не сложно, помогите пожалуйста...
Все уже доделал,
[Setup]
OutputBaseFilename=тест
AppName=тест
AppVerName=тест 1
DefaultDirName={pf}\тест
DisableProgramGroupPage=true
UsePreviousGroup=false
AppendDefaultGroupName=false
[Code]
var
ISCustomPage1: TWizardPage;
Nick: TNewStaticText;
NickEdit: TNewEdit;
ISCustomPage2: TWizardPage;
NikInfo: TNewStaticText;
NickInfoEdit: TNewEdit;
procedure RedesignWizardForm;
begin
{ Creates custom wizard page }
ISCustomPage1 := CreateCustomPage(wpWelcome, 'ISCustomPage1_Caption', 'ISCustomPage1_Description');
ISCustomPage2 := CreateCustomPage(wpPreparing, 'ISCustomPage2_Caption', 'ISCustomPage2_Description');
{ Nick }
Nick := TNewStaticText.Create(WizardForm);
with Nick do
begin
Name := 'Nick';
Parent := ISCustomPage1.Surface;
Caption := 'Nick';
Left := ScaleX(168);
Top := ScaleY(88);
Width := ScaleX(23);
Height := ScaleY(14);
end;
{ NickEdit }
NickEdit := TNewEdit.Create(WizardForm);
with NickEdit do
begin
Name := 'NickEdit';
Parent := ISCustomPage1.Surface;
Left := ScaleX(136);
Top := ScaleY(120);
Width := ScaleX(121);
Height := ScaleY(21);
Text := ''; //нужно какимто образом ввести это там, где написано {NickEdit.Text - не катит...}, и сделать так, чтобы в случае отсутствия значения здесь, ISCustomPage2 не создавалась.//
end;
Nick.TabOrder := 0;
NickEdit.TabOrder := 1;
{ NikInfo }
NikInfo := TNewStaticText.Create(WizardForm);
with NikInfo do
begin
Name := 'NikInfo';
Parent := ISCustomPage2.Surface;
Caption := 'NikInfo';
Left := ScaleX(168);
Top := ScaleY(56);
Width := ScaleX(35);
Height := ScaleY(14);
end;
{ NickInfoEdit }
NickInfoEdit := TNewEdit.Create(WizardForm);
with NickInfoEdit do
begin
Name := 'NickInfoEdit';
Parent := ISCustomPage2.Surface;
Left := ScaleX(66);
Top := ScaleY(96);
Width := ScaleX(273);
Height := ScaleY(93);
Text := '';
end;
NikInfo.TabOrder := 0;
NickInfoEdit.TabOrder := 1;
end;
procedure InitializeWizard();
begin
RedesignWizardForm;
end;
procedure CurStepChanged(CurStep: TSetupStep);
Var
S1: String;
S2: String;
begin
if CurStep = ssPostInstall//запись после распаковки всех файлов
then begin
S1 := '[Account_0]' +#13+#10+ 'Login=' + NickEdit.Text;
SaveStringToFile(ExpandConstant('{app}\test.ini'), S1, false);
begin
if CurStep = ssPostInstall//запись после распаковки всех файлов
then begin
S2 := '[Main]' +#13+#10+ 'Usernotes=' + NickInfoEdit.Text;
SaveStringToFile(ExpandConstant('{app}\{NickEdit.Text - не катит...}\test2.ini'), S2, false);
end;
end;
end;
end;
тут застрял...
Все решено, пост ниже.
Как изменить панель инсталятора?
(см.рис) http://s010.radikal.ru/i314/1101/ae/6935c2315a4d.jpg
На стандартную от Windows?
(пример,см.рис) http://s003.radikal.ru/i204/1101/1d/8a748f330699.jpg
дайте мне ссылку на файл cjsyles
Black666angel
04-01-2011, 02:20
Vamp1re, Удоли подобные строки
[Files]
Source: ISSkin.dll; DestDir: {app}; Attribs: hidden system
Source: Angel.cjstyles; DestDir: {app}; Attribs: hidden system
[Code]
function GetSystemMetrics(nIndex: Integer): Integer; external 'GetSystemMetrics@user32.dll stdcall';
procedure LoadSkin(lpszPath: String; lpszIniFileName: String ); external 'LoadSkin@files:isskin.dll stdcall delayload setuponly';
procedure LoadSkinA(lpszPath: String; lpszIniFileName: String ); external 'LoadSkin@{tmp}\isskin.dll stdcall delayload uninstallonly';
function InitializeSetup(): Boolean;
begin
ExtractTemporaryFile('Angel.cjstyles');
LoadSkin(ExpandConstant('{tmp}\Angel.cjstyles'), '');
Result:= true
end;
function InitializeUninstall(): Boolean;
begin
FileCopy(ExpandConstant('{app}\isskin.dll'), ExpandConstant('{tmp}\isskin.dll'), False);
FileCopy(ExpandConstant('{app}\Angel.cjstyles'), ExpandConstant('{tmp}\Angel.cjstyles'), False);
LoadSkinA(ExpandConstant('{tmp}\Angel.cjstyles'), '');
Result:=True;
end;
Или вазми фаил из папки x:\WINDOWS\Resources\Themes\*\*.msstyles ипереименуи в *.cjstyles
и вот радуися (стандартная тема luna.msstyles)
Gnom_aka_Lexander
04-01-2011, 15:29
Вот, добил (http://rghost.ru/3857708), пример сложной работы с *.ini-файлами, с созданием файла полностью и вводом множества данных из окна инсталлятора, а также создание подпапки по имени одного из параметров, на примере инсталлятора клиента чата Коммфорт.
Может, комуто этот пример поможет избежать множества мучений :)
Огромное спасибо Shegoratу с Ру-Борда, за помощь на последнем этапе :)
зеркало (http://forum.oszone.net/attachment.php?attachmentid=57633&d=1294596841)
Подскажите, у меня есть несколько freearc архивов, как сделать выбор какой из них устанавливать? (в каждом архиве отдельная игра)
Gnom_aka_Lexander
04-01-2011, 19:12
actavir, Тут (http://rghost.ru/3822959) есть привязка архивов к компонентам.
Сделал репак, и столкнулся со следующей проблемой - установка влезает на 2ва диска(1й диск - setup.exe, с setup-1.bin по setup-4.bin:2й диск - с setup-5.bin по setup-8.bin), так вот когда запускаю setup.exe, появляется окно с просьбой вставить диск 8(он же setup-8.bin), я так понял что в этом
setup-8.bin, находятся скин и сплеш для инстла... Подскажите как мне сделать чтобы файлы которые использует инстал. размещались в setup-1.bin или в самом setup.exe????? помогите товарищи...
serg aka lain
04-01-2011, 23:09
Подскажите как мне сделать чтобы файлы которые использует инстал. размещались в setup-1.bin или в самом setup.exe????? помогите товарищи... »
Их надо размещать в начале секции Files
serg aka lain,
Спасибо товарищ выручил...
Их надо размещать в начале секции Files »
Такая мелочь а я и не заметил......
Помогите плизз, подкиньте скрипт для автоматической активации игры?
Gnom_aka_Lexander
05-01-2011, 19:29
Vista-w, А что мешает проактивированную игру запаковать?
R.i.m.s.k.y.
05-01-2011, 19:35
Помогите плизз, подкиньте скрипт для автоматической активации игры? »
А она для всех игр одинаковая?
Лександер, не тот случай, здесь может быть связан HardWare ID
Vista-w, не туда обратился, иди в эту ветку форума (http://forum.oszone.net/forum-101.html) и решай на чем будешь писать свой активатор.
Лександер,
Помогите пожалуйста, как убрать вот это?
http://i028.radikal.ru/1101/1c/2d3214168f63t.jpg (http://radikal.ru/F/i028.radikal.ru/1101/1c/2d3214168f63.jpg.html)
Черную обводку.
Вот скрипт
#define MyAppExeName "Честь и доблесть 2.exe"
#define MyAppName "Честь и доблесть 2"
[Setup]
OutputDir=.
AppName=Честь и доблесть 2
AppVersion=1.0.9 RUS
AppPublisher=Alcohol
DefaultDirName={pf}\Честь и доблесть 2
DefaultGroupName=Честь и доблесть 2
OutputBaseFilename=setup
SetupIconFile=C:\Program Files\Честь и доблесть 2\icon1.ico
WizardImageFile=D:\Антон\How to RePack\Мои репаки\Честь и доблесть 2\Типография\img.bmp
AllowNoIcons=yes
WizardSmallImageFile=D:\Антон\How to RePack\Мои репаки\Честь и доблесть 2\Типография\WizardSmallImage.bmp
WindowVisible=no
WindowShowCaption=no
WindowResizable=no
Compression=lzma/ultra
SolidCompression=yes
InternalCompressLevel=ultra64
DiskSpanning=yes
DiskSliceSize=723517440
SlicesPerDisk=1
PrivilegesRequired=poweruser
[Languages]
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"
Name: dxinstall1; Description: "Обновить DirectX (рекомендуется)"; GroupDescription: "Дополнительное програмное обеспечение:"
Name: dxinstall2; Description: "Выполнить активацию игры (требуется)"; GroupDescription: "Дополнительно:"
[Files]
Source: "D:\Антон\How to RePack\Мои репаки\Fallout\Флат\skin\isskin.dll"; DestDir: "{app}"; Flags: dontcopy
Source: "D:\Антон\How to RePack\Мои репаки\Fallout\Флат\skin\tiger_v2.cjstyles"; DestDir: "{tmp}"; Flags: dontcopy
Source: "D:\Антон\How to RePack\Мои репаки\Инсталл\papka.bmp"; DestDir: "{tmp}"; Flags: dontcopy nocompression
Source: "D:\Антон\How to RePack\Мои репаки\Честь и доблесть 2\Типография\img.bmp"; DestDir: "{tmp}"; Flags: dontcopy nocompression
Source: "D:\Антон\How to RePack\Мои репаки\Инсталл\logo.bmp"; DestDir: "{tmp}"; Flags: dontcopy
Source: "{app}\install\DirectX\DXSETUP.exe"; DestDir: "{app}\install\DirectX"; Flags: ignoreversion
Source: "{app}\install\keygen.exe"; DestDir: "{app}\install\"; Flags: ignoreversion
Source: "{app}\install\DirectX\dsetup.dll"; DestDir: "{app}\install\DirectX\"; Flags: ignoreversion
Source: "C:\Program Files\Inno Setup 5\Examples\MyPorg.exe*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension
[Icons]
Name: "{group}\Честь и доблесть 2"; Filename: "{app}\K6.exe"; WorkingDir: "{app}";
Name: "{userdesktop}\Честь и доблесть 2"; Filename: "{app}\K6.exe"; WorkingDir: "{app}"; Tasks: desktopicon;
Name: "{group}\Деинсталлировать Честь и доблесть 2"; Filename: "{uninstallexe}"; WorkingDir: "{app}"
[Run]
Filename: "{app}\install\DirectX\DXSETUP.exe"; Parameters: "/SILENT"; WorkingDir: "{app}\install\DirectX\"; StatusMsg: "Устанавливается DirectX"; Tasks: dxinstall1
Filename: {app}\install\keygen.exe; Description: Запустить Keygen; Flags: postinstall skipifsilent unchecked runascurrentuser waituntilidle; WorkingDir: {app}; StatusMsg: Активация; Tasks: dxinstall2
Description: "{cm:LaunchProgram,окно активации продукта}"; Filename: "{app}\K6.exe"; WorkingDir: "{app}"; Flags: nowait postinstall skipifsilent unchecked
[UninstallDelete]
Type: filesandordirs; Name: "{app}"
[Code]
[Messages]
SetupWindowTitle=Честь и доблесть 2
[Code]
procedure LoadSkin(lpszPath: String; lpszIniFileName: String);
external 'LoadSkin@files:isskin.dll stdcall';
procedure UnloadSkin();
external 'UnloadSkin@files:isskin.dll stdcall';
function ShowWindow(hWnd: Integer; uType: Integer): Integer;
external 'ShowWindow@user32.dll stdcall';
var
LogoImage: TBitmapImage;
WLabel1, WLabel2,
FLabel1, FLabel2: TLabel;
PageNameLabel, PageDescriptionLabel: TLabel;
BmpFile: TBitmapImage;
procedure InitializeWizard();
begin
WizardForm.BorderStyle:= bsDialog;
WizardForm.Bevel.Hide
WizardForm.Bevel1.Hide
WizardForm.PageNameLabel.Font.Color:=clwhite;
WizardForm.LicenseAcceptedRadio.Font.Color:=clwhite;
WizardForm.LicenseNotAcceptedRadio.Font.Color:=clwhite;
WizardForm.Font.Color:=clwhite;
ExtractTemporaryFile('Logo.bmp');
LogoImage := TBitmapImage.Create(WizardForm);
with LogoImage do
begin
SetBounds(ScaleX(10), ScaleY(320), ScaleX(175), ScaleY(40));
Bitmap.LoadFromFile(ExpandConstant('{tmp}\Logo.bmp'));
Parent := WizardForm;
end;
ExtractTemporaryFile('papka.bmp');
WizardForm.SelectDirBitmapImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\papka.bmp'));
WizardForm.SelectDirBitmapImage.AutoSize:=true;
WizardForm.SelectGroupBitmapImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\papka.bmp'));
WizardForm.SelectGroupBitmapImage.AutoSize:=true;
ExtractTemporaryFile('img.bmp');
BmpFile:= TBitmapImage.Create(WizardForm);
BmpFile.Bitmap.LoadFromFile(ExpandConstant('{tmp}\img.bmp'));
BmpFile.SetBounds(0, 0, 497, 313);
BmpFile.Stretch:= true
BmpFile.Parent:= WizardForm.WelcomePage;
WizardForm.WelcomeLabel1.Hide;
WizardForm.WelcomeLabel2.Hide;
WizardForm.FinishedHeadingLabel.Hide;
WizardForm.FinishedLabel.Hide;
WizardForm.WizardBitmapImage.Width := 497;
WizardForm.WizardBitmapImage.Height := 313;
WizardForm.WizardSmallBitmapImage.Left:=0;
WizardForm.WizardSmallBitmapImage.Width:=497;
WizardForm.WizardSmallBitmapImage.Height:=58;
WizardForm.PageDescriptionLabel.Width:=300;
WizardForm.PageNameLabel.Width:=300;
WizardForm.FileNameLabel.Visible:=False;
WizardForm.ProgressGauge.Top:=ScaleY(100);
WizardForm.StatusLabel.Top:=ScaleY(80);
WLabel1 := TLabel.Create(WizardForm);
WLabel1.Left := ScaleX(50);
WLabel1.Top := ScaleY(80);
WLabel1.Width := ScaleX(301);
WLabel1.Height := ScaleY(54);
WLabel1.AutoSize := False;
WLabel1.WordWrap := True;
WLabel1.Font.Size := 11;
WLabel1.Font.Style := [fsBold];
WLabel1.Caption := WizardForm.WelcomeLabel1.Caption;
WLabel1.Transparent := True;
WLabel1.Parent := WizardForm.WelcomePage;
WLabel2 :=TLabel.Create(WizardForm);
WLabel2.Top := ScaleY(130);
WLabel2.Left := ScaleX(50);
WLabel2.Width := ScaleX(301);
WLabel2.Height := ScaleY(234);
WLabel2.AutoSize := False;
WLabel2.WordWrap := True;
WLabel2.Caption := WizardForm.WelcomeLabel2.Caption;
WLabel2.Transparent := True;
WLabel2.Parent := WizardForm.WelcomePage;
WizardForm.WizardBitmapImage2.Width := 497;
WizardForm.WizardBitmapImage2.Height := 313;
FLabel1 := TLabel.Create(WizardForm);
FLabel1.Left := ScaleX(50);
FLabel1.Top := ScaleY(80);
FLabel1.Width := ScaleX(301);
FLabel1.Height := ScaleY(54);
FLabel1.AutoSize := False;
FLabel1.WordWrap := True;
FLabel1.Font.Size := 11;
FLabel1.Font.Style := [fsBold];
FLabel1.Caption := WizardForm.FinishedHeadingLabel.Caption;
FLabel1.Transparent := True;
FLabel1.Parent := WizardForm.FinishedPage;
FLabel2 :=TLabel.Create(WizardForm);
FLabel2.Top := ScaleY(130);
FLabel2.Left := ScaleX(50);
FLabel2.Width := ScaleX(301);
FLabel2.Height := ScaleY(53);
FLabel2.AutoSize := False;
FLabel2.WordWrap := True;
FLabel2.Caption := '{#MyAppName} установлена на Ваш компьютер.' #13#13
'Нажмите «Завершить», чтобы выйти из программы установки.';
FLabel2.Transparent := True;
FLabel2.Parent := WizardForm.FinishedPage;
begin
PageNameLabel := TLabel.Create(WizardForm);
with PageNameLabel do
begin
Left := ScaleX(10);
Top := ScaleY(10);
Width := ScaleX(300);
Height := ScaleY(14);
AutoSize := False;
WordWrap := True;
Font.Style := [fsBold];
Transparent := True;
Parent := WizardForm.MainPanel;
end;
PageDescriptionLabel := TLabel.Create(WizardForm);
with PageDescriptionLabel do
begin
Left := ScaleX(15);
Top := ScaleY(25);
Width := ScaleX(400);
Height := ScaleY(30);
AutoSize := False;
WordWrap := True;
Transparent := True;
Parent := WizardForm.MainPanel;
end;
with WizardForm do
begin
PageNameLabel.Hide;
PageDescriptionLabel.Hide;
with MainPanel do
begin
with WizardSmallBitmapImage do
begin
Left := ScaleX(0);
Top := ScaleY(0);
Width := Mainpanel.Width;
Height := MainPanel.Height;
end;
end;
end;
end;
end;
function InitializeSetup(): Boolean;
begin
ExtractTemporaryFile('tiger_v2.cjstyles');
LoadSkin(ExpandConstant('{tmp}\tiger_v2.cjstyles'), '');
Result := True;
end;
procedure DeinitializeSetup();
begin
ShowWindow(StrToInt(ExpandConstant('{wizardhwnd}')), 0);
UnloadSkin();
end;
procedure CurPageChanged(CurPageID: Integer);
begin
begin
PageNameLabel.Caption := WizardForm.PageNameLabel.Caption;
PageDescriptionLabel.Caption := WizardForm.PageDescriptionLabel.Caption;
end;
end;
Gnom_aka_Lexander
05-01-2011, 22:29
Vista-w, Я не вижу у тебя этих чекбоксов в скрипте, скинь скрипт с файлами на обменник, завтра посмотю.
Лександер,
А можно просто сделать, чтоб запуск был без этого потверждения?
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.