Войти

Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 3]


Страниц : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 [19] 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188

nik1967
03-01-2011, 05:43
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;
тут застрял...
Все решено, пост ниже.

Vamp1re
03-01-2011, 21:45
Как изменить панель инсталятора?
(см.рис) http://s010.radikal.ru/i314/1101/ae/6935c2315a4d.jpg
На стандартную от Windows?
(пример,см.рис) http://s003.radikal.ru/i204/1101/1d/8a748f330699.jpg

Vamp1re
03-01-2011, 23:28
дайте мне ссылку на файл 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)

actavir
04-01-2011, 19:08
Подскажите, у меня есть несколько freearc архивов, как сделать выбор какой из них устанавливать? (в каждом архиве отдельная игра)

Gnom_aka_Lexander
04-01-2011, 19:12
actavir, Тут (http://rghost.ru/3822959) есть привязка архивов к компонентам.

Vamp1re
04-01-2011, 21:08
Black666angel, СПС

XNick
04-01-2011, 22:05
Сделал репак, и столкнулся со следующей проблемой - установка влезает на 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

XNick
04-01-2011, 23:32
serg aka lain,
Спасибо товарищ выручил...
Их надо размещать в начале секции Files »
Такая мелочь а я и не заметил......

Vista-w
05-01-2011, 19:05
Помогите плизз, подкиньте скрипт для автоматической активации игры?

Gnom_aka_Lexander
05-01-2011, 19:29
Vista-w, А что мешает проактивированную игру запаковать?

R.i.m.s.k.y.
05-01-2011, 19:35
Помогите плизз, подкиньте скрипт для автоматической активации игры? »
А она для всех игр одинаковая?

duxa
05-01-2011, 20:44
Лександер, не тот случай, здесь может быть связан HardWare ID
Vista-w, не туда обратился, иди в эту ветку форума (http://forum.oszone.net/forum-101.html) и решай на чем будешь писать свой активатор.

Vista-w
05-01-2011, 22:21
Лександер,
Помогите пожалуйста, как убрать вот это?
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, Я не вижу у тебя этих чекбоксов в скрипте, скинь скрипт с файлами на обменник, завтра посмотю.

Vista-w
05-01-2011, 22:33
Лександер,
А можно просто сделать, чтоб запуск был без этого потверждения?




© OSzone.net 2001-2012