Ru-Board.club
← Вернуться в раздел «Программы»

» Inno Setup (создание инсталяционных пакетов)

Автор: vovka1021
Дата сообщения: 28.05.2011 20:34
подскажите как сделать так


вот скрипт
[more=Читать дальше..]
#include "botva2.iss"
#include "ProgressBar.iss"
#define DirName "Games\The Witcher"

[Setup]
AppName=The Witcher
AppVersion=1.0
DefaultDirName={sd}\{#DirName}
DefaultGroupName=The Witcher
OutputBaseFilename=The Witcher
Compression=lzma
SolidCompression=true

[Languages]
Name: russian; MessagesFile: compiler:Languages\Russian.isl

[Types]

Name: full; Description: Full installation; Flags: iscustom

[Tasks]
Name: "icon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}";
Name: "soft"; Description: "{cm:soft}";
Name: "soft\dx"; Description: "{cm:dx}";
Name: "soft\vc"; Description: "{cm:vc}";
Name: "soft\xl"; Description: "{cm:xl}";

;[Run]
;Filename: "{src}\Redist\DirectX\DXSETUP.exe"; Parameters: "/silent"; StatusMsg: "{cm:dx1}"; Tasks: "soft\dx";
;Filename: "{src}\Redist\vcredist_x86.exe"; Parameters: "/q:a"; StatusMsg: "{cm:vc1}"; Tasks: "soft\vc";
;Filename: "{src}\Redist\gfwlivesetup.exe"; Parameters: "/q"; StatusMsg: "{cm:xl1}"; Tasks: "soft\xl";

[Icons]
Name: "{userdesktop}\проба озвучки"; Filename: {app}\MyProg.exe; WorkingDir: "{app}"; Tasks: "icon"; IconFilename: {app}\DIRT.ico
Name: "{group}\проба озвучки"; Filename: {app}\MyProg.exe; WorkingDir: "{app}"; Tasks: "icon"; IconFilename: {app}\DIRT.ico
Name: "{group}\{cm:UninstallProgram,проба озвучки}"; Filename: "{uninstallexe}"; IconFilename: {app}\DIRT.ico

[Files]
Source: DIRT.ico; DestDir: {app}; Attribs: hidden; Flags: ignoreversion
Source: Button.png; DestDir: {tmp}; Flags: dontcopy
Source: botva2.dll; DestDir: {tmp}; Flags: dontcopy
Source: CallbackCtrl.dll; DestDir: {tmp}; Flags: dontcopy
Source: WizardImage.jpg; DestDir: {tmp}; Flags: dontcopy
Source: work1.png; DestDir: {tmp}; Flags: dontcopy
Source: work2.png; DestDir: {tmp}; Flags: dontcopy
Source: work3.png; DestDir: {tmp}; Flags: dontcopy
Source: work4.png; DestDir: {tmp}; Flags: dontcopy
Source: work5.png; DestDir: {tmp}; Flags: dontcopy
Source: work6.png; DestDir: {tmp}; Flags: dontcopy
Source:pbbkg.png; Flags: dontcopy
Source:pb.png; Flags: dontcopy
Source: {win}\help\*; DestDir: {app}\Files; Flags: external recursesubdirs createallsubdirs;

[CustomMessages]
russian.AdditionalIcons=Дополнительные значки:
russian.CreateDesktopIcon=Создать значок на &Рабочем столе
russian.custom=Выборочная установка
russian.soft=Дополнительное программное обеспечение:
russian.vc=Установить Microsoft Visual C++ Redist
russian.vc1=Установка Microsoft Visual C++ Redist...
russian.dx=Обновить DirectX
russian.dx1=Обновление DirectX...
russian.xl=Установить Games for Windows - Live
russian.xl1=Установка Games for Windows - Live...
russian.custom=Выборочная установка

[Code]
type
TPBProc = function (h:hWnd;Msg,wParam,lParam:Longint):Longint;

var
NewPB : TImgPB;
PBOldProc : Longint;
WFCaption : string;
eTime, sTime : DWORD;

WelcomeLabel1,WelcomeLabel2,PageNameLabel,PageDescriptionLabel: TLabel;

hCancelBtn, hNextBtn, hBackBtn, hDirBrowseBtn, hGroupBrowseBtn: HWND;
WFButtonFont, UPFButtonFont: TFont;
work1, work2, work3,work4,work5, work6: Longint;

Combo: TComboBox;
DrvLetters: array of string;
FreeSpaceLabel: TLabel;

function GetDriveType(lpDisk: string): integer;external 'GetDriveTypeA@kernel32.dll stdcall';
function GetLogicalDriveStrings(nLenDrives: LongInt; lpDrives: string): integer;external 'GetLogicalDriveStringsA@kernel32.dll stdcall';

const
DRIVE_UNKNOWN=0;
DRIVE_NO_ROOT_DIR=1;
DRIVE_REMOVABLE=2;
DRIVE_FIXED=3;
DRIVE_REMOTE=4;
DRIVE_CDROM=5;
DRIVE_RAMDISK=6;

//************************************************ [Начало - Прогрессбар] ***************************************************//
function SetWindowLong(hWnd: HWND; nIndex: Integer; dwNewLong: Longint): Longint; external 'SetWindowLongA@user32.dll stdcall';
function CallBackProc(P:TPBProc;ParamCount:integer):LongWord; external 'wrapcallbackaddr@files:CallbackCtrl.dll stdcall';
function CallWindowProc(lpPrevWndFunc: Longint; hWnd: HWND; Msg: UINT; wParam, lParam: Longint): Longint; external 'CallWindowProcA@user32.dll stdcall';
function GetTickCount: DWORD; external 'GetTickCount@kernel32.dll stdcall';

function PBProc(h:hWnd;Msg,wParam,lParam:Longint):Longint;
var
lt:Longint;
dt,at,pr,i1,i2:Extended;
p:string;
tc:DWORD;
begin
Result:=CallWindowProc(PBOldProc,h,Msg,wParam,lParam);
if (Msg=$402) and (WizardForm.ProgressGauge.Position>WizardForm.ProgressGauge.Min) then begin
i1:=WizardForm.ProgressGauge.Position-WizardForm.ProgressGauge.Min;
i2:=WizardForm.ProgressGauge.Max-WizardForm.ProgressGauge.Min;

tc:=GetTickCount;
if (tc-eTime)>=1000 then begin //пересчитывем время оставшееся до конца установки не чаще, чем раз в 1 секунду
dt:=(tc-sTime)/1000;
at:=i2*dt/i1;
lt:=Round(at-dt)
eTime:=tc;
end;

pr:=i1*100/i2;
ImgPBSetPosition(NewPB,pr);
ImgApplyChanges(WizardForm.Handle);
end;
end;

procedure AllCancel;
begin
SetWindowLong(WizardForm.ProgressGauge.Handle,-4,PBOldProc);
ImgPBDelete(NewPB);
ImgApplyChanges(WizardForm.InstallingPage.Handle);
WizardForm.Caption:=WFCaption;
end;
//************************************************ [Конец - Прогрессбар] ***************************************************//

function InitializeSetup: Boolean;
begin
if not FileExists(ExpandConstant('{tmp}\botva2.dll')) then ExtractTemporaryFile('botva2.dll');
if not FileExists(ExpandConstant('{tmp}\CallbackCtrl.dll')) then ExtractTemporaryFile('CallbackCtrl.dll');
Result:=true;
end;
//************************************************ [Начало - Вставка изображений] ***************************************************//

procedure Wizard;
var
i: integer;
begin
ExtractTemporaryFile('WizardImage.jpg');
ExtractTemporaryFile('Button.png');
ExtractTemporaryFile('work1.png');
ExtractTemporaryFile('work2.png');
ExtractTemporaryFile('work3.png');
ExtractTemporaryFile('work4.png');
ExtractTemporaryFile('work5.png');
ExtractTemporaryFile('work6.png');

WizardForm.ClientWidth:=ScaleX(750);
WizardForm.ClientHeight:=ScaleY(450);
WizardForm.InnerNotebook.Hide;
WizardForm.OuterNotebook.Hide;
WizardForm.Bevel.Hide;

WelcomeLabel1 := TLabel.Create(WizardForm);
WelcomeLabel1.Parent := WizardForm;
WelcomeLabel1.Font.Color := $76cae0;
WelcomeLabel1.Alignment := taCenter;
WelcomeLabel1.AutoSize := False;
WelcomeLabel1.Transparent := True;
WelcomeLabel1.WordWrap := True;
WelcomeLabel1.Font.Size := 12;
WelcomeLabel1.SetBounds(ScaleX(280), ScaleY(110), ScaleX(400), ScaleY(50))
WelcomeLabel1.Caption := WizardForm.WelcomeLabel1.Caption;

WelcomeLabel2 := TLabel.Create(WizardForm);
WelcomeLabel2.Parent := WizardForm;
WelcomeLabel2.Font.Size := 11;
WelcomeLabel2.Font.Color := $76cae0;
WelcomeLabel2.Alignment := taCenter;
WelcomeLabel2.AutoSize := False;
WelcomeLabel2.Transparent := True;
WelcomeLabel2.WordWrap := True;
WelcomeLabel2.SetBounds(ScaleX(330), ScaleY(190), ScaleX(300), ScaleY(300))
WelcomeLabel2.Caption := WizardForm.WelcomeLabel2.Caption;

PageNameLabel := TLabel.Create(WizardForm);
PageNameLabel.Parent := WizardForm;
PageNameLabel.Font.Size := 12;
PageNameLabel.Font.Color := $76cae0;
PageNameLabel.Transparent := True;
PageNameLabel.SetBounds(ScaleX(10), ScaleY(10), ScaleX(400), ScaleY(20))

PageDescriptionLabel := TLabel.Create(WizardForm);
PageDescriptionLabel.Parent := WizardForm;
PageDescriptionLabel.Font.Size := 11;
PageDescriptionLabel.Font.Color := $76cae0;
PageDescriptionLabel.Alignment := taCenter;
PageDescriptionLabel.AutoSize := False;
PageDescriptionLabel.Transparent := True;
PageDescriptionLabel.WordWrap := True;
PageDescriptionLabel.SetBounds(ScaleX(50), ScaleY(40), ScaleX(300), ScaleY(20))

WizardForm.DirEdit.AutoSelect := False;
WizardForm.DirEdit.AutoSize := False;
WizardForm.DirEdit.Font.Size := 11;
WizardForm.DirEdit.SetBounds(ScaleX(430), ScaleY(250), ScaleX(210), ScaleY(28))
WizardForm.DirEdit.Parent := WizardForm;
WizardForm.DirEdit.Color := clBlack
WizardForm.DirEdit.Font.Color := clWhite

WizardForm.GroupEdit.AutoSelect := False;
WizardForm.GroupEdit.AutoSize := False;
WizardForm.GroupEdit.Font.Size := 11;
WizardForm.GroupEdit.SetBounds(ScaleX(350), ScaleY(310), ScaleX(250), ScaleY(28))
WizardForm.GroupEdit.Parent := WizardForm;
WizardForm.GroupEdit.Color := clBlack
WizardForm.GroupEdit.Font.Color := clWhite

WizardForm.TasksList.SetBounds(ScaleX(450), ScaleY(200), ScaleX(300), ScaleY(150))
WizardForm.TasksList.Parent := WizardForm;
WizardForm.TasksList.Color := clBlack
WizardForm.TasksList.Font.Color:= clWhite

WizardForm.ReadyMemo.SetBounds(ScaleX(450), ScaleY(200), ScaleX(300), ScaleY(150))
WizardForm.ReadyMemo.Parent := WizardForm;
WizardForm.ReadyMemo.Color := clBlack
WizardForm.ReadyMemo.Font.Color:= clWhite
WizardForm.ReadyMemo.BorderStyle := bsNone;


ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\WizardImage.jpg'),ScaleX(0), ScaleY(0),WizardForm.ClientWidth,WizardForm.ClientHeight,True,True);

work1:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\work1.png'),ScaleX(0), ScaleY(0),WizardForm.ClientWidth,WizardForm.ClientHeight,True,True);
work2:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\work2.png'),ScaleX(0), ScaleY(0),WizardForm.ClientWidth,WizardForm.ClientHeight,True,True);
work3:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\work3.png'),ScaleX(0), ScaleY(0),WizardForm.ClientWidth,WizardForm.ClientHeight,True,True);
work4:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\work4.png'),ScaleX(0), ScaleY(0),WizardForm.ClientWidth,WizardForm.ClientHeight,True,True);
work5:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\work5.png'),ScaleX(0), ScaleY(0),WizardForm.ClientWidth,WizardForm.ClientHeight,True,True);
work6:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\work6.png'),ScaleX(0), ScaleY(0),WizardForm.ClientWidth,WizardForm.ClientHeight,True,True);
end;

//************************************************ [Конец - Вставка изображений] ***************************************************//
//************************************************ [Начало - Текстуры кнопок] ***************************************************//
procedure SetStateNewButtons;
begin
with WizardForm.BackButton do begin
BtnSetText(hBackBtn,PAnsiChar(Caption));
BtnSetVisibility(hBackBtn,Visible);
BtnSetEnabled(hBackBtn,Enabled);
end;
with WizardForm.CancelButton do begin
BtnSetText(hCancelBtn,PAnsiChar(Caption));
BtnSetVisibility(hCancelBtn,Visible);
BtnSetEnabled(hCancelBtn,Enabled);
end;
with WizardForm.NextButton do begin
BtnSetText(hNextBtn,PAnsiChar(Caption));
BtnSetVisibility(hNextBtn,Visible);
BtnSetEnabled(hNextBtn,Enabled);
end;
end;

procedure WizardFormBtnClick(hBtn:HWND);
var
Btn:TButton;
begin
case hBtn of
hCancelBtn: Btn:=WizardForm.CancelButton;
hNextBtn: Btn:=WizardForm.NextButton;
hBackBtn: Btn:=WizardForm.BackButton;
hDirBrowseBtn: Btn:=WizardForm.DirBrowseButton;
hGroupBrowseBtn: Btn:=WizardForm.GroupBrowseButton;
end;
SetStateNewButtons;
Btn.OnClick(Btn);
BtnRefresh(hBtn);
end;

procedure ButtonsTextures;
begin
WFButtonFont:=TFont.Create;
WFButtonFont.Style:=[fsBold];

with WizardForm.BackButton do begin
hBackBtn:=BtnCreate(WizardForm.Handle,ScaleX(50),ScaleY(400),ScaleX(80),ScaleY(40),ExpandConstant('{tmp}\Button.png'),1,False);
BtnSetEvent(hBackBtn,BtnClickEventID,WrapBtnCallback(@WizardFormBtnClick,1));
BtnSetCursor(hBackBtn,GetSysCursorHandle(32649));
BtnSetFontColor(hBackBtn,$76cae0,$0000FF,$000000,$B6B6B6);
Width:=0;
Height:=0;
end;

with WizardForm.NextButton do begin
hNextBtn:=BtnCreate(WizardForm.Handle,ScaleX(150),ScaleY(400),ScaleX(80),ScaleY(40),ExpandConstant('{tmp}\Button.png'),1,False);
BtnSetEvent(hNextBtn,BtnClickEventID,WrapBtnCallback(@WizardFormBtnClick,1));
BtnSetCursor(hNextBtn,GetSysCursorHandle(32649));
BtnSetFontColor(hNextBtn,$76cae0,$0000FF,$000000,$B6B6B6);
Width:=0;
Height:=0;
end;

with WizardForm.CancelButton do begin
hCancelBtn:=BtnCreate(WizardForm.Handle,ScaleX(250),ScaleY(400),ScaleX(80),ScaleY(40),ExpandConstant('{tmp}\Button.png'),1,False);
BtnSetEvent(hCancelBtn,BtnClickEventID,WrapBtnCallback(@WizardFormBtnClick,1));
BtnSetCursor(hCancelBtn,GetSysCursorHandle(32649));
BtnSetFontColor(hCancelBtn,$76cae0,$0000FF,$000000,$B6B6B6);
Width:=0;
Height:=0;
end;

with WizardForm.DirBrowseButton do begin
hDirBrowseBtn:=BtnCreate(WizardForm.Handle,ScaleX(640),ScaleY(245),ScaleX(80),ScaleY(40),ExpandConstant('{tmp}\Button.png'),1,False);
BtnSetEvent(hDirBrowseBtn,BtnClickEventID,WrapBtnCallback(@WizardFormBtnClick,1));
BtnSetCursor(hDirBrowseBtn,GetSysCursorHandle(32649));
BtnSetFontColor(hDirBrowseBtn,$76cae0,$0000FF,$000000,$B6B6B6);
Width:=0;
Height:=0;
end;


with WizardForm.GroupBrowseButton do begin
hGroupBrowseBtn:=BtnCreate(WizardForm.Handle,ScaleX(600),ScaleY(305),ScaleX(80),ScaleY(40),ExpandConstant('{tmp}\Button.png'),7,False);
BtnSetEvent(hGroupBrowseBtn,BtnClickEventID,WrapBtnCallback(@WizardFormBtnClick,1));
BtnSetCursor(hGroupBrowseBtn,GetSysCursorHandle(32649));
BtnSetFontColor(hGroupBrowseBtn,$76cae0,$0000FF,$000000,$B6B6B6);
Width:=0;
Height:=0;
end;
end;

//************************************************ [Конец - Текстуры кнопок] ***************************************************//
//************************************************ [Начало - DirEditCombo] ***************************************************//
function DriveTypeString(dtype: integer): string;
begin case dtype of
DRIVE_NO_ROOT_DIR: Result:='Неверный путь';
DRIVE_REMOVABLE: Result:='Съемный';
DRIVE_FIXED: Result:='';
DRIVE_REMOTE: Result:='Сетевой';
DRIVE_CDROM: Result:='CD-ROM';
DRIVE_RAMDISK: Result:='Ram диск';
else Result:='Неизвестный';
end;
end;

procedure ComboOnClick(Sender: TObject);
begin WizardForm.DirEdit.Text:=DrvLetters[Combo.ItemIndex]+'{#DirName}';
end;

procedure FillCombo();
var
n: integer;
drivesletters: string; lenletters: integer;
drive: string;
disktype, posnull: integer;
sd: string;
begin
sd:=UpperCase(ExpandConstant('{sd}'));
drivesletters:=StringOfChar(' ', 64);
lenletters:=GetLogicalDriveStrings(63, drivesletters);
SetLength(drivesletters, lenletters);
drive:='';
n:=0;

while ((Length(drivesletters) > 0)) do
begin posnull:=Pos(#0, drivesletters);
if posnull > 0 then begin drive:=UpperCase(Copy(drivesletters, 1, posnull-1));
disktype:=GetDriveType(drive);
if disktype = DRIVE_FIXED then begin Combo.Items.Add(drive+DriveTypeString(disktype));
SetArrayLength(DrvLetters, N+1);
DrvLetters[n]:=drive;
if (Copy(drive, 1, 2)=sd) then Combo.ItemIndex:=n;
n:=n+1;
end;
drivesletters:=Copy(drivesletters, posnull+1, Length(drivesletters));
end;
end;
ComboOnClick(Combo);
end;

procedure GetFreeSpaceCaption(Sender: TObject);
var
Path: string;
FreeMB, TotalMB: cardinal;

begin
Path:=ExtractFileDrive(Combo.Text+WizardForm.DirEdit.Text);
GetSpaceOnDisk(Path, True, FreeMB, TotalMB);
if FreeMB > 1024 then FreeSpaceLabel.Caption:='Свободно на диске: ' + FloatToStr(round(FreeMB/1024*100)/100) + ' GB'
else FreeSpaceLabel.Caption:='Свободно на диске: ' + IntToStr(FreeMB) + ' MB'
end;

procedure DirEditCombo;
begin
Combo:=TComboBox.Create(WizardForm.SelectDirPage);
Combo.TabStop := False;
Combo.Parent:=WizardForm;
Combo.Color := clBlack;
Combo.Font.Color := clLime;
Combo.Font.Size := 12;
Combo.SetBounds(WizardForm.DirEdit.Left-ScaleX(50), WizardForm.DirEdit.Top+ScaleY(2), ScaleX(50), ScaleY(50))
Combo.Style:=csOwnerDrawVariable;
Combo.OnClick:=@ComboOnClick;

FreeSpaceLabel:=TLabel.Create(WizardForm);
FreeSpaceLabel.Parent:=WizardForm;
FreeSpaceLabel.SetBounds(ScaleX(400), ScaleY(350), ScaleX(68), ScaleY(28))
FreeSpaceLabel.Font.Color := $76cae0;
FreeSpaceLabel.Transparent := True;

WizardForm.DirEdit.OnChange:=@GetFreeSpaceCaption;
WizardForm.DirEdit.Text:=WizardForm.DirEdit.Text+#0;
FillCombo;
end;
//************************************************ [Конец - DirEditCombo] ***************************************************//
//************************************************ [Начало - Скрываем ненужные страницы] ***************************************************//

function ShouldSkipPage(PageID: Integer): Boolean;
begin
if (PageID =wpLicense)or(PageID =wpPassword)or
(PageID =wpInfoBefore)or(PageID =wpUserInfo)or
(PageID =wpSelectComponents)or(PageID =wpSelectProgramGroup)or
(PageID =wpPreparing)or(PageID =wpInfoAfter)
then Result:= True;
end;
//************************************************ [Конец - Скрываем ненужные страницы] ***************************************************//

procedure InitializeWizard();
begin
Wizard;
ButtonsTextures;
DirEditCombo;
end;


procedure Hide;
begin
Combo.Hide;
FreeSpaceLabel.Hide;
WizardForm.DirEdit.Hide;
WizardForm.ReadyMemo.Hide;
WizardForm.GroupEdit.Hide;
WizardForm.TasksList.Hide;
WelcomeLabel1.Hide;WelcomeLabel2.Hide;
PageNameLabel.Caption:=WizardForm.PageNameLabel.Caption
PageDescriptionLabel.Caption:=WizardForm.PageDescriptionLabel.Caption

ImgSetVisibility(work1,False);
ImgSetVisibility(work2,False);
ImgSetVisibility(work5,False);
ImgSetVisibility(work4,False);
ImgSetVisibility(work3,False);
ImgSetVisibility(work6,False);

BtnSetVisibility(hBackBtn,True);
BtnSetVisibility(hNextBtn,True);
BtnSetVisibility(hDirBrowseBtn,False);
BtnSetVisibility(hGroupBrowseBtn,False);

BtnSetText(hBackBtn,WizardForm.BackButton.Caption);
BtnSetText(hNextBtn,WizardForm.NextButton.Caption);
BtnSetText(hCancelBtn,WizardForm.CancelButton.Caption);
BtnSetText(hDirBrowseBtn,WizardForm.DirBrowseButton.Caption);
BtnSetText(hGroupBrowseBtn,WizardForm.GroupBrowseButton.Caption);

BtnSetPosition(hNextBtn,ScaleX(150),ScaleY(400),ScaleX(80),ScaleY(40));
end;

procedure CurPageChanged(CurPageID: Integer);
begin
Hide;
case CurPageID of
wpWelcome:
begin
ImgSetVisibility(work1,True);
BtnSetVisibility(hBackBtn,False);
WelcomeLabel1.Show;WelcomeLabel2.Show;
end;
wpSelectDir:
begin
Combo.Show;
FreeSpaceLabel.Show;
WizardForm.DirEdit.Show;
WizardForm.GroupEdit.Show;
BtnSetVisibility(hDirBrowseBtn,True);
BtnSetVisibility(hGroupBrowseBtn,True);
ImgSetVisibility(work2,True);
end;
wpSelectTasks:
begin
WizardForm.TasksList.Show
ImgSetVisibility(work3,True);
end;
wpReady:
begin
BtnSetPosition(hNextBtn,ScaleX(140),ScaleY(400),ScaleX(100),ScaleY(40));
ImgSetVisibility(work4,True);
WizardForm.ReadyMemo.Show;
end;
wpInstalling:
begin
BtnSetVisibility(hBackBtn,False);
BtnSetVisibility(hNextBtn,False);
ImgSetVisibility(work5,True);
end;
wpFinished:
begin
ImgSetVisibility(work6,True);
BtnSetVisibility(hBackBtn,False);
BtnSetVisibility(hCancelBtn,False);
WelcomeLabel1.Show;WelcomeLabel2.Show;
WelcomeLabel1.Caption := WizardForm.FinishedHeadingLabel.Caption;
WelcomeLabel2.Caption := WizardForm.FinishedLabel.Caption;
BtnSetPosition(hNextBtn,ScaleX(140),ScaleY(400),ScaleX(100),ScaleY(40));
end;
end;
ImgApplyChanges(WizardForm.Handle); //обновляем WizardForm
end;

procedure CurStepChanged(CurStep: TSetupStep);
begin
case CurStep of
ssInstall: begin
ExtractTemporaryFile('pbbkg.png');
ExtractTemporaryFile('pb.png');
NewPB:=ImgPBCreate(WizardForm.Handle, ExpandConstant('{tmp}\pbbkg.png'), ExpandConstant('{tmp}\pb.png'),WizardForm.ProgressGauge.Left+10,WizardForm.ProgressGauge.Top+300,WizardForm.ProgressGauge.Width+315,25);
ImgApplyChanges(WizardForm.InstallingPage.Handle);

WFCaption:=WizardForm.Caption;
PBOldProc:=SetWindowLong(WizardForm.ProgressGauge.Handle,-4,CallBackProc(@PBProc,4));
end;
ssPostInstall: AllCancel;
end;
end;

procedure CancelButtonClick(CurPageID: Integer; var Cancel, Confirm: Boolean);
begin
if CurPageID=wpInstalling then begin
Confirm:=False;
Cancel:=ExitSetupMsgBox;
if Cancel then AllCancel;
end;
end;

procedure DeinitializeSetup();
begin gdipShutdown
end;
[/more]
Автор: Gnom3
Дата сообщения: 28.05.2011 20:38
vovka1021
Никак, там родной таск-лист, для того черное пятно и служит, чтоб жизнь не усложнять
Автор: vovka1021
Дата сообщения: 28.05.2011 20:40
ну а как тогда сделать не родной таск-лист, с прозрачным фоном?
помогите вставить в этот скрипт дополнительное по и ярлыки.

///////////////////////////////////////////////////////////////////////////

Gnom3, спасибо, пошел мучать голову!
Автор: Gnom3
Дата сообщения: 28.05.2011 20:58
vovka1021
Создавать чекбоксы самостоятельно, в коде. Вот пример создания одного чекбокса:
[more=Код][Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application

[Files]
Source: Файл, который будет установлен, если выбран чекбокс; DestDir: {app}; Check: Check1

[Code]
var
Label1: TLabel;
Check1Box: TNewCheckBox;

function Check1: Boolean;
{ проверяем, стоит галка или нет }
begin
if Check1Box.Checked then
Result:= True;
end;

procedure InitializeWizard();
begin
{ Если нужно прозрачность, то лейбел создаем отдельно }
Label1 := TLabel.Create(WizardForm);
with Label1 do
begin
caption := 'надпись';
Parent := WizardForm;
Transparent := True;
Left := ScaleX(96);
Top := ScaleY(337);
Width := ScaleX(31);
Height := ScaleY(13);
end;

{ Сам чекбокс }
Check1Box := TNewCheckBox.Create(WizardForm);
with Check1Box do
begin
Checked := True;
Parent := WizardForm;
Left := ScaleX(72);
Top := ScaleY(332);
Width := ScaleX(17);
Height := ScaleY(17);
end;
end;
[/more]
Автор: byExit
Дата сообщения: 28.05.2011 21:50
troyan90
Спасибо за помощь.
Автор: vovka1021
Дата сообщения: 28.05.2011 22:01
в чем может быть ошибка

хотя все архивы распаковались нормально
[more=вот скрипт..]
//; Количество слайдов
#define SlidesCount "10"
//;Расширение изображений Допустимо использовать с расширениями jpg, png, bmp. может, еще какие, но я не уверен.
#define img "jpg"

//;Время показа слайдов //задержка 10000 мс (10 секунды)
#define T "10000"

#define GameName "Counter Strike Source"
#define GameVerName "Counter Strike Source v60"

#define NeedSize "6000"

#define NeedMem 512

#define Url "http://innoultra.ru/"

//;#define records

;#define facompress
;#define precomp "0.4"
;#define SrepInside
;#define unrar
;#define XDelta
;#define PackZIP


[Setup]
;AppId={#GameID}
AppName={#GameName}
AppVerName={#GameName}
AppPublisher=Valve
AppPublisherURL=http://counter-strike.ru
AppVersion=v60
;AppUpdatesURL=http://www.needforspeed.com/downloads
DefaultDirName={sd}\R.G. MaHiTo\{#GameVerName}
DefaultGroupName=R.G. MaHiTo\{#GameVerName}
OutputBaseFilename=setup
DirExistsWarning=no
;MinVersion=0,5.01
VersionInfoDescription={#GameName}
;SetupIconFile=nfs_icon.ico
;DisableReadyPage=True
#ifdef NeedSize
ExtraDiskSpaceRequired={#NeedSize}
#endif


[CustomMessages]
ExtractedFile=Извлекается файл:
Extracted=Распаковка архивов...
CancelButton=Отменить распаковку
Error=Ошибка распаковки!
ElapsedTime=Прошло:
RemainingTime=Осталось времени:
EstimatedTime=Всего:
AllElapsedTime=Время установки:
icons=Поместить ярлык на рабочий стол.
rusik=Установить русификатор

[Files]
Source: Slides\*; Flags: dontcopy
Source: ISDone\ISDone.dll; Flags: dontcopy
#ifdef records
Source: records.inf; Flags: dontcopy
#endif

#ifdef facompress
Source: ISDone\facompress.dll; Flags: dontcopy
#endif
#ifdef SrepInside
Source: ISDone\arc.ini; Flags: dontcopy
Source: ISDone\srep.exe; Flags: dontcopy
#endif
#ifdef precomp
#if precomp == "0.38"
Source: ISDone\precomp038.exe; Flags: dontcopy
#else
#if precomp == "0.4"
Source: ISDone\precomp040.exe; Flags: dontcopy
#else
#if precomp == "0.41"
Source: ISDone\precomp041.exe; Flags: dontcopy
#else
Source: ISDone\precomp038.exe; Flags: dontcopy
Source: ISDone\precomp040.exe; Flags: dontcopy
Source: ISDone\precomp041.exe; Flags: dontcopy
#endif
#endif
#endif
#endif
#ifdef unrar
Source: ISDone\Unrar.dll; Flags: dontcopy
#endif
#ifdef XDelta
Source: ISDone\XDelta3.dll; Flags: dontcopy
#endif
#ifdef PackZIP
Source: ISDone\7z.dll; Flags: dontcopy
Source: ISDone\packZIP.exe; Flags: dontcopy
#endif

Source: "Files\*"; Flags: dontcopy;
Source: {win}\help\*; DestDir: {app}\Files; Flags: external recursesubdirs createallsubdirs;

[Tasks]
Check: icon;Name: icons; Description: "{cm:icons}";
Check: rus;Name: rusik; Description: "{cm:rusik}";

[Icons]
Name: "{group}\Играть в Counter Strike Source"; Filename: "{app}\Run_CSS.bat"; WorkingDir: "{app}"; IconFilename: "{app}\Run_CSS.exe";
Name: "{group}\Проверить наличие обновления"; Filename: "{app}\updater.exe"; WorkingDir: "{app}"; IconFilename: "{app}\Run_CSS.exe";
Name: "{group}\Все файлы для игр"; Filename: "http://www.play-game-ru.ucoz.ru/"; WorkingDir: "http://";
Name: "{group}\Удалить Counter Strike Source"; Filename: "{uninstallexe}"; WorkingDir: "{app}"; IconFilename: "{app}\Run_CSS.exe";
Name: "{userdesktop}\Counter Strike Source"; Filename: {app}\Run_CSS.bat; WorkingDir: {app}; Tasks: icons;
Name: "{userdesktop}\Все файлы для игр"; Filename: http://www.play-game-ru.ucoz.ru/; WorkingDir: http://; Tasks: icons;

[UninstallDelete]
Type: filesandordirs; Name: {app}

[Code]
#include "botva2.iss"
#include "pb.iss"
const
PCFonFLY=true;
notPCFonFLY=false;

HALIGN_CENTER = 0;
HALIGN_LEFT = 1;
HALIGN_RIGHT = 2;

VALIGN_CENTER = 0;
VALIGN_TOP = 1;
VALIGN_BOTTOM = 2;

FIT_NONE = 0;
FIT_WIDTH = 1;
FIT_HEIGHT = 2;
FIT_BOTH = 3;

CLR_INVALID = $FFFFFFFF;
type
TTimerProc = procedure (h: Longword; msg: Longword; idevent: Longword; dwTime: Longword);
TCallback = function (OveralPct,CurrentPct: integer;CurrentFile,TimeStr1,TimeStr2,TimeStr3:PAnsiChar): longword;
TPBProc = function (h:hWnd;Msg,wParam,lParam:Longint):Longint;

var
TimerID: LongWord;
CurrentPicture:integer;
PicList: TStringlist;
pfunc: LongWord;
status: HWND;

LabelPct1,LabelCurrFileName,LabelTime1,LabelTime2,LabelTime3: TLabel;
ISDoneProgressBar: TNewProgressBar;
ISDoneCancel:integer;
ISDoneError:boolean;
PCFVer:double;

NewPB : TImgPB;
PBOldProc : Longint;
WFCaption : string;
eTime, sTime : DWORD;

FreeMB, TotalMB: Cardinal;
NeedSize: Integer;
NeedSpaceLabel: TLabel;

iconsCheck, rusikCheck: HWND;
iconsLabel, rusikLabel: TLabel;

rg,WelcomeLabel1,WelcomeLabel2,PageNameLabel,PageDescriptionLabel: TLabel;
l,t:integer;
MyCancelButton,hCancelBtn, hNextBtn, hBackBtn: HWND;
Space,OKImg,BkgImg: array of Longint;
barImg,Workspace: Longint;
CurrentImage:integer;

#include "ISDone.iss"
function NewGifbWnd(hWndParent: HWND; X, Y, nWidth, nHeight: Integer): HWND; external 'newgifwnd@files:gifctrl.dll stdcall';
function FreeGifWnd(hWndGif: HWND): Boolean; external 'freegifwnd@files:gifctrl.dll stdcall';
function FreeAllGifWnd(): Boolean; external 'freeallgifwnd@files:gifctrl.dll stdcall';
function GifWndSetParent(hWndGif: HWND; hWndParent: HWND): Boolean; external 'gifwndsetparent@files:gifctrl.dll stdcall';
function GifWndSetBounds(hWndGif: HWND; X, Y, nWidth, nHeight: Integer): Boolean; external 'gifwndsetbounds@files:gifctrl.dll stdcall';
function GifWndLoadFromFile(hWndGif: HWND; HAlign, VAlign: Integer; BGColor: DWord; Fit: integer; GifFileName: PChar): Boolean; external 'gifwndloadfromfile@files:gifctrl.dll stdcall';

procedure LoadSkin(lpszPath: PAnsiChar; lpszIniFileName: PAnsiChar); external 'LoadSkin@{tmp}\isskin.dll stdcall delayload';
procedure UnloadSkin; external 'UnloadSkin@{tmp}\isskin.dll stdcall delayload';

function InitializeSetup: Boolean;
begin
if not FileExists(ExpandConstant('{tmp}\botva2.dll')) then ExtractTemporaryFile('botva2.dll');
if not FileExists(ExpandConstant('{tmp}\CallbackCtrl.dll')) then ExtractTemporaryFile('CallbackCtrl.dll');
if not FileExists(ExpandConstant('{tmp}\InnoCallback.dll')) then ExtractTemporaryFile('InnoCallback.dll');
if not FileExists(ExpandConstant('{tmp}\isSlideShow.dll')) then ExtractTemporaryFile('isSlideShow.dll');
if not FileExists(ExpandConstant('{tmp}\isSlideShow.dll')) then ExtractTemporaryFile('isSlideShow.dll');
if not FileExists(ExpandConstant('{tmp}\isskin.dll')) then ExtractTemporaryFile('isskin.dll');
if not FileExists(ExpandConstant('{tmp}\Skin.skinproj')) then ExtractTemporaryFile('Skin.skinproj');
LoadSkin(ExpandConstant('{tmp}\Skin.skinproj'), '');
status := 0;
Result:=true;
end;

function ShowWindow(hWnd: Integer; uType: Integer): Integer; external 'ShowWindow@user32.dll stdcall';
function GetSystemMetrics(nIndex:Integer):integer; external 'GetSystemMetrics@user32.dll stdcall delayload';

function WrapTimerProc(callback:TTimerProc; paramcount:integer):LongWord; external 'wrapcallback@{tmp}\InnoCallback.dll stdcall delayload';
function SetTimer(hWnd, nIDEvent, uElapse, lpTimerFunc: LongWord): LongWord; external 'SetTimer@user32.dll stdcall';
function KillTimer(hWnd, nIDEvent: LongWord): LongWord; external 'KillTimer@user32.dll stdcall';
procedure InitializeSlideShow(Hwnd:Thandle; l,t,w,h:integer;Animate:boolean; Stretch:integer); external 'InitializeSlideShow@files:isslideshow.dll stdcall';
procedure DeinitializeSlideShow; external 'DeinitializeSlideShow@files:isslideshow.dll stdcall';
procedure ShowImage(ipath:PAnsiChar; Effect:integer); external 'ShowImage@files:isslideshow.dll stdcall';

//************************************************ [Начало - Прогрессбар] ***************************************************//
function SetWindowLong(hWnd: HWND; nIndex: Integer; dwNewLong: Longint): Longint; external 'SetWindowLongA@user32.dll stdcall';
function CallBackProc(P:TPBProc;ParamCount:integer):LongWord; external 'wrapcallbackaddr@files:CallbackCtrl.dll stdcall';
function CallWindowProc(lpPrevWndFunc: Longint; hWnd: HWND; Msg: UINT; wParam, lParam: Longint): Longint; external 'CallWindowProcA@user32.dll stdcall';
function GetTickCount: DWORD; external 'GetTickCount@kernel32.dll stdcall';
function mciSendString(lpstrCommand, lpstrReturnString: PChar; uReturnLength, hWndCallback: Integer): Integer; external 'mciSendStringA@winmm stdcall delayload';

function PBProc(h:hWnd;Msg,wParam,lParam:Longint):Longint;
var
lt:Longint;
dt,at,pr,i1,i2:Extended;
p:string;
tc:DWORD;
begin
Result:=CallWindowProc(PBOldProc,h,Msg,wParam,lParam);
if (Msg=$402) and (ISDoneProgressBar.Position>ISDoneProgressBar.Min) then begin
i1:=ISDoneProgressBar.Position-ISDoneProgressBar.Min;
i2:=ISDoneProgressBar.Max-ISDoneProgressBar.Min;

tc:=GetTickCount;
if (tc-eTime)>=1000 then begin //пересчитывем время оставшееся до конца установки не чаще, чем раз в 1 секунду
dt:=(tc-sTime)/1000;
at:=i2*dt/i1;
lt:=Round(at-dt)
eTime:=tc;
end;

pr:=i1*100/i2;
ImgPBSetPosition(NewPB,pr);
ImgApplyChanges(WizardForm.Handle);
end;
end;

procedure AllCancel;
begin
SetWindowLong(ISDoneProgressBar.Handle,-4,PBOldProc);
ImgPBDelete(NewPB);
ImgApplyChanges(WizardForm.Handle);
WizardForm.Caption:=WFCaption;
end;
//************************************************ [Начало - Прогрессбар] ***************************************************//
procedure rgClick(Sender:TObject);
var ErrorCode: Integer;
begin ShellExec('open', '{#Url}', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode);
end;

function icon: Boolean;
begin
Result:= BtnGetChecked(iconsCheck);
end;

function rus: Boolean;
begin
Result:= BtnGetChecked(rusikCheck);
end;
procedure iconsClick(hBtn:HWND);
begin
if BtnGetChecked(hBtn) then iconsLabel.Font.Color:=$00FFFF else iconsLabel.Font.Color:=$76cae0;
end;

procedure iconsLabelClick(Sender:TObject);
begin
BtnSetChecked(iconsCheck, not BtnGetChecked(iconsCheck));
iconsClick(iconsCheck);
end;

procedure rusikClick(hBtn:HWND);
begin
if BtnGetChecked(hBtn) then rusikLabel.Font.Color:=$00FFFF else rusikLabel.Font.Color:=$76cae0;
end;

procedure rusikLabelClick(Sender:TObject);
begin
BtnSetChecked(rusikCheck, not BtnGetChecked(rusikCheck));
rusikClick(rusikCheck);
end;

procedure Extract();
var
i: integer;
begin
ExtractTemporaryFile('main_end.jpg');
ExtractTemporaryFile('folders.jpg');
ExtractTemporaryFile('components.jpg');
ExtractTemporaryFile('progress.jpg');

ExtractTemporaryFile('rg.png');
ExtractTemporaryFile('bar.png');
ExtractTemporaryFile('bar0.png');
ExtractTemporaryFile('Workspace.png');
ExtractTemporaryFile('bar1.png');
ExtractTemporaryFile('okbig.png');
ExtractTemporaryFile('Back.png');
ExtractTemporaryFile('Next.png');
ExtractTemporaryFile('Cancel.png');
ExtractTemporaryFile('chek.png');
ExtractTemporaryFile('error.png');

ExtractTemporaryFile('status.gif');
ExtractTemporaryFile('ststus1.gif');
ExtractTemporaryFile('status2.gif');

PicList:=tstringlist.Create;
for i:=1 to {#SlidesCount} do
ExtractTemporaryFile(IntToStr(i)+'.{#img}');
for i:=1 to {#SlidesCount} do
piclist.add(ExpandConstant('{tmp}\') + IntToStr(i)+'.{#img}');
end;

procedure SetStateNewButtons;
begin
with WizardForm.BackButton do begin
BtnSetVisibility(hBackBtn,Visible);
BtnSetEnabled(hBackBtn,Enabled);
end;
with WizardForm.CancelButton do begin
BtnSetVisibility(hCancelBtn,Visible);
BtnSetEnabled(hCancelBtn,Enabled);
end;
with WizardForm.NextButton do begin
BtnSetVisibility(hNextBtn,Visible);
BtnSetEnabled(hNextBtn,Enabled);
end;
end;

procedure WizardFormBtnClick(hBtn:HWND);
var
Btn:TButton;
begin
case hBtn of
hCancelBtn: Btn:=WizardForm.CancelButton;
hNextBtn: Btn:=WizardForm.NextButton;
hBackBtn: Btn:=WizardForm.BackButton;
end;
SetStateNewButtons;
Btn.OnClick(Btn);
BtnRefresh(hBtn);
end;

procedure Wizard();
var
h:HWND;
i,l1:integer;
begin
h:=WizardForm.Handle;

WizardForm.ClientHeight := ScaleY(400);
WizardForm.ClientWidth := ScaleX(600);
WizardForm.OuterNotebook.Align := alClient;
WizardForm.InnerNotebook.Align := alClient;
WizardForm.OuterNotebook.Hide;
WizardForm.InnerNotebook.Hide;
WizardForm.Bevel.Hide;

SetArrayLength(BkgImg,4);
BkgImg[0]:=ImgLoad(h,ExpandConstant('{tmp}\main_end.jpg'),0,0,WizardForm.ClientWidth,WizardForm.ClientHeight,True,True);
BkgImg[1]:=ImgLoad(h,ExpandConstant('{tmp}\folders.jpg'),0,0,WizardForm.ClientWidth,WizardForm.ClientHeight,True,True);
BkgImg[2]:=ImgLoad(h,ExpandConstant('{tmp}\components.jpg'),0,0,WizardForm.ClientWidth,WizardForm.ClientHeight,True,True);
BkgImg[3]:=ImgLoad(h,ExpandConstant('{tmp}\progress.jpg'),0,0,WizardForm.ClientWidth,WizardForm.ClientHeight,True,True);
CurrentImage:=0;

WizardForm.DirEdit.AutoSelect := False;
WizardForm.DirEdit.AutoSize := False;
WizardForm.DirEdit.Font.Size := 11;
WizardForm.DirEdit.SetBounds(ScaleX(45), ScaleY(200), ScaleX(250), ScaleY(28))
WizardForm.DirEdit.Parent := WizardForm;
WizardForm.DirEdit.Font.Color := clGreen

WizardForm.GroupEdit.AutoSelect := False;
WizardForm.GroupEdit.AutoSize := False;
WizardForm.GroupEdit.Font.Size := 11;
WizardForm.GroupEdit.SetBounds(ScaleX(45), ScaleY(260), ScaleX(250), ScaleY(28))
WizardForm.GroupEdit.Parent := WizardForm;
WizardForm.GroupEdit.Font.Color := clGreen

WizardForm.DirBrowseButton.SetBounds(ScaleX(300), ScaleY(200), ScaleX(80), ScaleY(26))
WizardForm.DirBrowseButton.Parent := WizardForm;

WizardForm.GroupBrowseButton.SetBounds(ScaleX(300), ScaleY(260), ScaleX(80), ScaleY(26))
WizardForm.GroupBrowseButton.Parent := WizardForm;

ISDoneProgressBar := TNewProgressBar.Create(WizardForm);
ISDoneProgressBar.Parent := WizardForm.InstallingPage;
ISDoneProgressBar.Max := 1000;
ISDoneProgressBar.SetBounds(ScaleX(50), ScaleY(180), ScaleX(500), ScaleY(40))
end;

procedure Labels;
begin
WelcomeLabel1 := TLabel.Create(WizardForm);
WelcomeLabel1.Parent := WizardForm;
WelcomeLabel1.Font.Color := clYellow;
WelcomeLabel1.Alignment := taCenter;
WelcomeLabel1.AutoSize := False;
WelcomeLabel1.Transparent := True;
WelcomeLabel1.WordWrap := True;
WelcomeLabel1.Font.Name := 'Times New Roman';
WelcomeLabel1.SetBounds(ScaleX(65),ScaleY(100),ScaleX(WizardForm.ClientWidth div 2),ScaleY(74))

WelcomeLabel2 := TLabel.Create(WizardForm);
WelcomeLabel2.Parent := WizardForm;
WelcomeLabel2.Font.Color := clYellow;
WelcomeLabel2.AutoSize := False;
WelcomeLabel2.Transparent := True;
WelcomeLabel2.Font.Name := 'Times New Roman';
WelcomeLabel2.WordWrap := True;

PageNameLabel := TLabel.Create(WizardForm);
PageNameLabel.Parent := WizardForm;
PageNameLabel.Font.Color := clLime;
PageNameLabel.Transparent := True;
PageNameLabel.SetBounds(ScaleX(50), ScaleY(90), ScaleX(400), ScaleY(20))
PageNameLabel.Font.Name := 'Times New Roman';
PageNameLabel.Font.Size:= 10;
PageNameLabel.WordWrap := False;

PageDescriptionLabel := TLabel.Create(WizardForm);
PageDescriptionLabel.Parent := WizardForm;
PageDescriptionLabel.Font.Color := clLime;
PageDescriptionLabel.Transparent := True;
PageDescriptionLabel.AutoSize := False;
PageDescriptionLabel.WordWrap := True;
PageDescriptionLabel.Font.Name := 'Times New Roman';
PageDescriptionLabel.Font.Size:= 10;
PageDescriptionLabel.SetBounds(ScaleX(70), ScaleY(110), ScaleX(350), ScaleY(25))

rg := TLabel.Create(WizardForm);
rg.Parent := WizardForm;
rg.AutoSize := False;
rg.Transparent := True;
rg.SetBounds(ScaleX(WizardForm.ClientWidth-200),ScaleY(WizardForm.ClientHeight-155),ScaleX(199),ScaleY(110))
rg.OnClick:= @rgClick;
rg.Cursor:= CrHand;

iconsLabel := TLabel.Create(WizardForm);
with iconsLabel do begin
AutoSize:=True;
SetBounds(ScaleX(100), ScaleY(250), ScaleX(275), ScaleY(17));
OnClick:= @iconsLabelClick;
Cursor:= CrHand;
Transparent:=True;
Font.Name:= 'Georgia'
Font.Size:= 10;
Font.Color:=$00FFFF;
Font.Style:=[fsBold];
Caption := ExpandConstant('{cm:icons}');
Parent := WizardForm;
end;

rusikLabel := TLabel.Create(WizardForm);
with rusikLabel do begin
AutoSize:=True;
SetBounds(ScaleX(100), ScaleY(300), ScaleX(350), ScaleY(30));
OnClick:= @rusikLabelClick;
Cursor:= CrHand;
Transparent:=True;
Font.Name:= 'Georgia'
Font.Size:= 10;
Font.Color:=$00FFFF;
Font.Style:=[fsBold];
Caption := ExpandConstant('{cm:rusik}');
Parent := WizardForm;
end;
end;

//************************************************ [Начало - Текстуры кнопок] ***************************************************//
procedure ButtonsTextures;
begin
with WizardForm.BackButton do begin
hBackBtn:=BtnCreate(WizardForm.Handle,ScaleX(4),ScaleY(WizardForm.ClientHeight div 2-37),ScaleX(26),ScaleY(74),ExpandConstant('{tmp}\Back.png'),1,False);
BtnSetEvent(hBackBtn,BtnClickEventID,WrapBtnCallback(@WizardFormBtnClick,1));
BtnSetCursor(hBackBtn,GetSysCursorHandle(32649));
Width:=0;
Height:=0;
end;

with WizardForm.NextButton do begin
hNextBtn:=BtnCreate(WizardForm.Handle,ScaleX(WizardForm.ClientWidth-30),ScaleY((WizardForm.ClientHeight div 2)-37),ScaleX(26),ScaleY(74),ExpandConstant('{tmp}\Next.png'),1,False);
BtnSetEvent(hNextBtn,BtnClickEventID,WrapBtnCallback(@WizardFormBtnClick,1));
BtnSetCursor(hNextBtn,GetSysCursorHandle(32649));
Width:=0;
Height:=0;
end;

with WizardForm.CancelButton do begin
hCancelBtn:=BtnCreate(WizardForm.Handle,ScaleX(WizardForm.ClientWidth-120),ScaleY(WizardForm.ClientHeight-40),ScaleX(105),ScaleY(37),ExpandConstant('{tmp}\Cancel.png'),1,False);
BtnSetEvent(hCancelBtn,BtnClickEventID,WrapBtnCallback(@WizardFormBtnClick,1));
BtnSetCursor(hCancelBtn,GetSysCursorHandle(32649));
Width:=0;
Height:=0;
end;

iconsCheck:=BtnCreate(WizardForm.Handle,ScaleX(70),ScaleY(243),ScaleX(28),ScaleY(28),ExpandConstant('{tmp}\chek.png'),8,True);
BtnSetEvent(iconsCheck,BtnClickEventID,WrapBtnCallback(@iconsClick,1));
BtnSetCursor(iconsCheck,GetSysCursorHandle(32649));

rusikCheck:=BtnCreate(WizardForm.Handle,ScaleX(70),ScaleY(293),ScaleX(28),ScaleY(28),ExpandConstant('{tmp}\chek.png'),8,True);
BtnSetEvent(rusikCheck,BtnClickEventID,WrapBtnCallback(@rusikClick,1));
BtnSetCursor(rusikCheck,GetSysCursorHandle(32649));

BtnSetChecked(iconsCheck,True)
BtnSetChecked(rusikCheck,True)
end;

//************************************************ [Конец - Текстуры кнопок] ***************************************************//

//************************************************ [Начало - Скрываем ненужные страницы] ***************************************************//
function ShouldSkipPage(PageID: Integer): Boolean;
begin
if (PageID =wpSelectProgramGroup) then Result:= True;
end;
//************************************************ [Конец - Скрываем ненужные страницы] ***************************************************//
procedure InitializeWizard();
begin
Extract();
Wizard();
ButtonsTextures;
Labels;
ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\rg.png'),ScaleX(WizardForm.ClientWidth-200),ScaleY(0),ScaleX(199),ScaleY(WizardForm.ClientHeight),False,False);
ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\bar.png'),ScaleX(10),ScaleY(10),ScaleX(288),ScaleY(36),True,True);
barImg:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\bar0.png'),ScaleX(11),ScaleY(11),ScaleX(46),ScaleY(34),True,True);
Workspace:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\Workspace.png'),ScaleX(33), ScaleY(70),ScaleX(370),ScaleY(320),True,True);

SetArrayLength(OKImg,5);
OKImg[0]:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\okbig.png'),564,3,15,15,True,False);
OKImg[1]:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\okbig.png'),564,30,15,15,True,False);
OKImg[2]:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\okbig.png'),564,55,15,15,True,False);
OKImg[3]:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\okbig.png'),564,82,15,15,True,False);
OKImg[4]:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\okbig.png'),564,108,15,15,True,False);
CurrentImage:=0;

SetArrayLength(Space,2);
Space[0]:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\error.png'),300,330,25,25,True,True);
Space[1]:=ImgLoad(WizardForm.Handle,ExpandConstant('{tmp}\okbig.png'),300,330,25,25,True,True);
// CurrentImage:=0;
end;
//************************************************ [Начало - Место на диске] ***************************************************//

procedure GetFreeSpaceCaption(Sender: TObject);
var
Path: String;

begin
Path := ExtractFileDrive(WizardForm.DirEdit.Text);
GetSpaceOnDisk(Path, True, FreeMB, TotalMB);

if FreeMB < {#NeedSize} then begin //Если места недостаточно
FreeAllGifWnd();
BtnSetEnabled(hNextBtn,False)
PageNameLabel.Font.Color:=clMaroon;
status := NewGifbWnd(WizardForm.Handle,ScaleX(549),SCaleY(31),ScaleX(45),SCaleY(15));
GifWndLoadFromFile(status, HALIGN_LEFT, VALIGN_CENTER, CLR_INVALID, FIT_BOTH, ExpandConstant('{tmp}\ststus1.gif'));
ImgSetVisibility(Space[0],True);
ImgSetVisibility(Space[1],False);
ImgApplyChanges(WizardForm.Handle); //обновляем WizardForm
end else if FreeMB - {#NeedSize} < 2024 then begin//Если после установки останется меньше 2-х гигабайт.
FreeAllGifWnd();
BtnSetEnabled(hNextBtn,False)
PageNameLabel.Font.Color:=clOlive;
status := NewGifbWnd(WizardForm.Handle,ScaleX(549),SCaleY(31),ScaleX(45),SCaleY(15));
GifWndLoadFromFile(status, HALIGN_LEFT, VALIGN_CENTER, CLR_INVALID, FIT_BOTH, ExpandConstant('{tmp}\status2.gif'));
end else begin//Если места достаточно
FreeAllGifWnd();
PageNameLabel.Font.Color:=clLime;
BtnSetEnabled(hNextBtn,True);
status := NewGifbWnd(WizardForm.Handle,ScaleX(549),SCaleY(31),ScaleX(45),SCaleY(15));
GifWndLoadFromFile(status, HALIGN_LEFT, VALIGN_CENTER, CLR_INVALID, FIT_BOTH, ExpandConstant('{tmp}\status.gif'));
ImgSetVisibility(Space[0],False);
ImgSetVisibility(Space[1],True);
ImgApplyChanges(WizardForm.Handle); //обновляем WizardForm
end;

if FreeMB > 1024 then PageDescriptionLabel.Caption := 'Свободно на выбранном диске: ' + FloatToStr(round(FreeMB/1024*100)/100) + ' GB'
else PageDescriptionLabel.Caption := 'Свободно на выбранном диске: ' + IntToStr(FreeMB)+ ' MB';
if {#NeedSize} > 1024 then PageNameLabel.Caption := 'Требуется для установки: ' + IntToStr(round({#NeedSize}/1024*100)/100) + ' GB'
else PageNameLabel.Caption := 'Требуется для установки: ' + IntToStr({#NeedSize})+ ' MB';
end;
//************************************************ [Конец - Место на диске] ***************************************************//


procedure Hide;
begin
FreeAllGifWnd();
WizardForm.DirEdit.Hide;
WizardForm.GroupEdit.Hide;
WizardForm.DirBrowseButton.Hide;
WizardForm.GroupBrowseButton.Hide;
WelcomeLabel1.Hide;WelcomeLabel2.Hide;
WelcomeLabel2.Alignment := taCenter;
WelcomeLabel2.Font.Size := 11;
WelcomeLabel2.SetBounds(ScaleX(65),ScaleY(200),ScaleX(WizardForm.ClientWidth div 2),ScaleY(180))
iconsLabel.Hide; rusikLabel.Hide;

ImgSetVisibility(BkgImg[0],False);
ImgSetVisibility(BkgImg[1],False);
ImgSetVisibility(BkgImg[2],False);
ImgSetVisibility(BkgImg[3],False);

ImgSetVisibility(OKImg[1],False);
ImgSetVisibility(OKImg[2],False);

ImgSetVisibility(OKImg[3],False);
ImgSetVisibility(OKImg[4],False);

ImgSetVisibility(Space[0],False);
ImgSetVisibility(Space[1],False);

BtnSetVisibility(iconsCheck,False)
BtnSetVisibility(rusikCheck,False)

BtnSetVisibility(hNextBtn,True)
BtnSetVisibility(hBackBtn,True)
BtnSetVisibility(hCancelBtn,True)

BtnSetEnabled(hNextBtn,True)
BtnSetEnabled(hBackBtn,True)
BtnSetEnabled(hCancelBtn,True)

PageNameLabel.Caption:=WizardForm.PageNameLabel.Caption
PageDescriptionLabel.Caption:=WizardForm.PageDescriptionLabel.Caption
end;

procedure OnTimer(HandleW, msg, idEvent, TimeSys: LongWord);
begin
CurrentPicture:=CurrentPicture+1;
if CurrentPicture=piclist.count+1 then CurrentPicture:=1;
ShowImage(piclist.strings[CurrentPicture - 1], 1);
end;

procedure CurPageChanged(CurPageID: Integer);
var
GifFileName: String;
begin
Hide;
case CurPageID of
wpWelcome:
begin
ImgSetPosition(barImg, ScaleX(11),ScaleY(11),ScaleX(45),ScaleY(34));
BtnSetEnabled(hBackBtn,False)
WelcomeLabel1.Show;WelcomeLabel2.Show;
WelcomeLabel1.Caption := WizardForm.WelcomeLabel1.Caption;
WelcomeLabel1.SetBounds(ScaleX(65),ScaleY(100),ScaleX(WizardForm.ClientWidth div 2),ScaleY(74));
WelcomeLabel2.Caption := WizardForm.WelcomeLabel2.Caption;
WelcomeLabel1.Font.Size := 12;
ImgSetVisibility(BkgImg[0],True);
end;
wpSelectDir:
begin
ImgSetVisibility(BkgImg[1],True);
ImgSetPosition(barImg, ScaleX(11),ScaleY(11),ScaleX(90),ScaleY(34));

WizardForm.DirEdit.OnChange := @GetFreeSpaceCaption;
WizardForm.DirEdit.Text := WizardForm.DirEdit.Text + #0;

WelcomeLabel1.Show;WelcomeLabel2.Show;

WelcomeLabel1.Caption := WizardForm.SelectDirLabel.Caption;
WelcomeLabel1.SetBounds(ScaleX(45), ScaleY(180), ScaleX(250), ScaleY(28))
WelcomeLabel1.Font.Size := 10;

WelcomeLabel2.Caption := WizardForm.SelectStartMenuFolderLabel.Caption;
WelcomeLabel2.SetBounds(ScaleX(45), ScaleY(228), ScaleX(250), ScaleY(28))
WelcomeLabel2.Font.Size := 10;

PageDescriptionLabel.SetBounds(ScaleX(45), ScaleY(330), ScaleX(250), ScaleY(28))
PageNameLabel.SetBounds(ScaleX(45), ScaleY(350), ScaleX(250), ScaleY(28))

WizardForm.DirEdit.Show;WizardForm.GroupEdit.Show;
WizardForm.DirBrowseButton.Show;WizardForm.GroupBrowseButton.Show;
end;
wpSelectTasks:
begin
ImgSetPosition(barImg, ScaleX(11),ScaleY(11),ScaleX(136),ScaleY(34));
ImgSetVisibility(BkgImg[2],True);
ImgSetVisibility(OKImg[1],True);
status := NewGifbWnd(WizardForm.Handle,ScaleX(549),SCaleY(56),ScaleX(45),SCaleY(15));
GifWndLoadFromFile(status, HALIGN_LEFT, VALIGN_CENTER, CLR_INVALID, FIT_BOTH, ExpandConstant('{tmp}\status.gif'));

PageNameLabel.SetBounds(ScaleX(50), ScaleY(130), ScaleX(250), ScaleY(28))
PageDescriptionLabel.SetBounds(ScaleX(70), ScaleY(150), ScaleX(250), ScaleY(28))

iconsLabel.Show; rusikLabel.Show;
BtnSetVisibility(iconsCheck,True)
BtnSetVisibility(rusikCheck,True)
end;
wpReady:
begin
ImgSetPosition(barImg, ScaleX(11),ScaleY(11),ScaleX(184),ScaleY(34));
ImgSetVisibility(OKImg[1],True);
ImgSetVisibility(OKImg[2],True);
status := NewGifbWnd(WizardForm.Handle,ScaleX(549),SCaleY(82),ScaleX(45),SCaleY(15));
GifWndLoadFromFile(status, HALIGN_LEFT, VALIGN_CENTER, CLR_INVALID, FIT_BOTH, ExpandConstant('{tmp}\status.gif'));

PageNameLabel.SetBounds(ScaleX(50), ScaleY(100), ScaleX(250), ScaleY(28))
PageDescriptionLabel.SetBounds(ScaleX(70), ScaleY(130), ScaleX(250), ScaleY(28))
if IsTaskSelected('icon') then
WizardForm.ReadyMemo.Lines.Add('{cm:icons}');
if IsTaskSelected('rus') then
WizardForm.ReadyMemo.Lines.Add('{cm:rusik}');

ImgSetVisibility(BkgImg[0],True);
WelcomeLabel2.Show;
WelcomeLabel2.Caption := WizardForm.ReadyMemo.Lines.Text;
WelcomeLabel2.Alignment := taLeftJustify;
WelcomeLabel2.Font.Size := 10;
WelcomeLabel2.SetBounds(ScaleX(65),ScaleY(170),ScaleX(WizardForm.ClientWidth div 2),ScaleY(180))
end;
wpInstalling:
begin
ImgSetPosition(barImg, ScaleX(11),ScaleY(11),ScaleX(235),ScaleY(34));
ImgSetPosition(Workspace, ScaleX(0), ScaleY(0),ScaleX(370),ScaleY(180));
ImgSetVisibility(OKImg[1],True);
ImgSetVisibility(OKImg[2],True);
ImgSetVisibility(OKImg[3],True);
status := NewGifbWnd(WizardForm.Handle,ScaleX(549),SCaleY(108),ScaleX(45),SCaleY(15));
GifWndLoadFromFile(status, HALIGN_LEFT, VALIGN_CENTER, CLR_INVALID, FIT_BOTH, ExpandConstant('{tmp}\status.gif'));

ExtractTemporaryFile('pbbkg.png');
ExtractTemporaryFile('bar1.png');
NewPB:=ImgPBCreate(WizardForm.Handle, ExpandConstant('{tmp}\pbbkg.png'), ExpandConstant('{tmp}\bar1.png'),ScaleX(50), ScaleY(180), ScaleX(500), ScaleY(40));
WFCaption:=WizardForm.Caption;
PBOldProc:=SetWindowLong(ISDoneProgressBar.Handle,-4,CallBackProc(@PBProc,4));

PageNameLabel.SetBounds(ScaleX(50), ScaleY(50), ScaleX(250), ScaleY(28))
PageDescriptionLabel.SetBounds(ScaleX(70), ScaleY(70), ScaleX(250), ScaleY(28))
BtnSetEnabled(hNextBtn,False)
BtnSetEnabled(hBackBtn,False)
ImgSetVisibility(BkgImg[3],True);

InitializeSlideShow(WizardForm.Handle, scaleX(35), ScaleY(235), scaleX(320), ScaleY(150), True, 2);
CurrentPicture:=1;
ShowImage(piclist.strings[CurrentPicture-1], 4);
TimerID:=SetTimer(0, 0, {#T}, WrapTimerProc(@OnTimer, 4));
end;
wpFinished:
begin
DeinitializeSlideShow;
KillTimer(0, TimerID);
status := NewGifbWnd(WizardForm.Handle,ScaleX(549),SCaleY(134),ScaleX(45),SCaleY(15));
GifWndLoadFromFile(status, HALIGN_LEFT, VALIGN_CENTER, CLR_INVALID, FIT_BOTH, ExpandConstant('{tmp}\status.gif'));

ImgSetPosition(barImg, ScaleX(11),ScaleY(11),ScaleX(286),ScaleY(34));
ImgSetPosition(Workspace, ScaleX(33), ScaleY(70),ScaleX(370),ScaleY(320));
ImgSetVisibility(OKImg[1],True);
ImgSetVisibility(OKImg[2],True);
ImgSetVisibility(OKImg[3],True);
ImgSetVisibility(OKImg[4],True);

LabelTime3.Hide;
WizardForm.Caption:= ExpandConstant('{cm:Error}');
WizardForm.FinishedLabel.Font.Color:= clRed;
WizardForm.FinishedLabel.Caption:= SetupMessage(msgSetupAborted) ;

BtnSetEnabled(hNextBtn,False)
BtnSetEnabled(hBackBtn,False)
BtnSetVisibility(hCancelBtn,False)

WelcomeLabel1.Show;WelcomeLabel2.Show;
WelcomeLabel1.SetBounds(ScaleX(65),ScaleY(100),ScaleX(WizardForm.ClientWidth div 2),ScaleY(74));
WelcomeLabel1.Caption := WizardForm.FinishedHeadingLabel.Caption;
WelcomeLabel2.Caption := WizardForm.FinishedLabel.Caption;

ExtractTemporaryFile('exit.png');
hNextBtn:=BtnCreate(WizardForm.Handle,ScaleX(WizardForm.ClientWidth-120),ScaleY(WizardForm.ClientHeight-40),ScaleX(105),ScaleY(37),ExpandConstant('{tmp}\exit.png'),1,False);
BtnSetEvent(hNextBtn,BtnClickEventID,WrapBtnCallback(@WizardFormBtnClick,1));

ImgSetVisibility(BkgImg[0],True);
end;
end;
ImgApplyChanges(WizardForm.Handle); //обновляем WizardForm
end;
//************************************************ [Начало - Прогрессбар] ***************************************************//
procedure CurStepChanged(CurStep: TSetupStep);
begin ISDoneChanged(CurStep);
case CurStep of ssPostInstall: AllCancel;
end;
end;

procedure CancelButtonClick(CurPageID: Integer; var Cancel, Confirm: Boolean);
begin
if CurPageID=wpInstalling then begin
Confirm:=False;
Cancel:=ExitSetupMsgBox;
if Cancel then begin
AllCancel;
WizardForm.CancelButton.Enabled:=False;
DeinitializeSlideShow;
KillTimer(0, TimerID);
end;
end;
end;
//************************************************ [Начало - Прогрессбар] ***************************************************//

procedure DeinitializeSetup();
begin
FreeAllGifWnd();
UnloadSkin;
gdipShutdown;
end;
[/more]

знающие люди помогите исправить
Автор: Snoopak96
Дата сообщения: 29.05.2011 04:54
vovka1021,
А у тебя вообще успешного завершения и не будет, тут косяк:

Цитата:
Procedure CurPageChanged(CurPageID: Integer);

Нет у тебя вот этого (пример):

Цитата:
if (CurPageID = wpFinished) and ISDoneError then

Или может быть это условие во внешнем модуле isdone.iss, но сомневаюсь что оно там есть.
Автор: Gepex
Дата сообщения: 29.05.2011 08:54
Всем привет.
Когда я создаю инсталлятор, атрибут "Только чтение"
снимается с определенных файлов, почему? как исправить?
Автор: r1977
Дата сообщения: 29.05.2011 10:43
Всем привет. Как увеличить размер инсталлятора?
Автор: nik1967
Дата сообщения: 29.05.2011 10:58
r1977
[more=Один из примеров]
Код: [Setup]
AppName=Name
AppVerName=Name
DefaultDirName={pf}\Name

[Languages]
Name: rus; MessagesFile: compiler:Languages\Russian.isl

[_Code]
procedure InitializeWizard();
var
L: Integer;
begin
with WizardForm do begin
L:=ScaleX(157); // На сколько надо увеличить длину инсталла
ClientWidth := ClientWidth + L;
ClientHeight:= ClientHeight + ScaleY(52);
OuterNotebook.Width := ClientWidth;
OuterNotebook.Height := ClientHeight - ScaleY(60);
InnerNotebook.Left := ClientWidth div 2 - InnerNotebook.Width div 2;
Bevel.Width:= ClientWidth;
Bevel1.Width:= ClientWidth;
MainPanel.Width:= ClientWidth;
WelcomeLabel1.Hide;
WelcomeLabel2.Hide;
Center;
WizardSmallBitmapImage.Left:= ClientWidth - ScaleX(57);
with WizardBitmapImage do begin
Top:= ScaleY(0);
Left:= ScaleX(0);
Width:= OuterNotebook.Width;
Height:= OuterNotebook.Height;
Stretch:= true;
end;
with Bevel do begin
Left := ScaleX(1);
Top := OuterNotebook.Height;
Width := OuterNotebook.Width - ScaleX(3);
end;
with NextButton do begin
Left := OuterNotebook.Width - ScaleX(240);
Top := OuterNotebook.Height + ScaleY(18);
Width:= ScaleX(110);
Height:= ScaleY(28);
end;
with BackButton do begin
Left := OuterNotebook.Width - ScaleX(350);
Top := OuterNotebook.Height + ScaleY(18);
Width:= ScaleX(110);
Height:= ScaleY(28);
with CancelButton do begin
Left := OuterNotebook.Width - ScaleX(120);
Top := OuterNotebook.Height + ScaleY(18);
Width:= ScaleX(110);
Height:= ScaleY(28);
end;
end; end; end;
Автор: AtotIK
Дата сообщения: 29.05.2011 15:10
Gepex, просто укажи в секции [Files] какие файлы при установке пометить как "Read Only".
Пример:

Код:
[Files]
Source: "MyProg.exe"; DestDir: "{app}"; Attribs: readonly;
Автор: ILIA1992
Дата сообщения: 29.05.2011 16:06
сделал репак дирт 3 .

Игру распаковало,запускаю ярлык выскакивает это http://img.ii4.ru/images/2011/05/29/112553_emyanney.jpg

Может дело всё в реестре???если да,то файлы с реестра я взял.
Кто делал репак не могли бы дать мне код реестра [Registry]
Автор: shidow
Дата сообщения: 29.05.2011 16:10
ILIA1992
какое отношение это имеет к inno setup?

да и вообще причем здесь файлы из реестра
Автор: ILIA1992
Дата сообщения: 29.05.2011 16:43
shidow

установленные файлы брал с другого репака,сжал их через фриарк.
Потом установил . запускаю и выскакивает это.
Может дело в какой нибудь ошибке установщика,хотя при проверке ошибок не было обнаружено
Автор: r1977
Дата сообщения: 29.05.2011 17:13
nik1967
Спасибо, а как сделать картинку на весь инсталлятор? Как сделать чтоб картинка была на всех этапах установки?
Автор: nik1967
Дата сообщения: 29.05.2011 17:26
r1977
Сайт Gnom3
Автор: r1977
Дата сообщения: 29.05.2011 17:37
nik1967
Спасибо
Автор: Saturas32
Дата сообщения: 29.05.2011 17:42
Вопрос может быть и не тему, но все же, ктонить знает есть ли гденибудь исходники timectrl.dll??
Автор: Snoopak96
Дата сообщения: 29.05.2011 17:43
ILIA1992
Наверно стоит пройтись по доп софту, а именно установки только службы xlive (наверняка эта служба не запущена на windows), а не всего комплекта xlive.
Автор: Neronk_2K
Дата сообщения: 29.05.2011 19:33
Парни плз дайте реестр Dirt 3
Автор: Despofix
Дата сообщения: 29.05.2011 19:39
Neronk_2K
а самому снять реестр не судьба?
Автор: Neronk_2K
Дата сообщения: 29.05.2011 19:47
Despofix

Я упаковал игру, потом удалил лицуху (установочник и установленую игру) чтоб проверить установку, а потом вспомнил об реестре

Плз дайте кто нить! Блин парни СРОЧНО нужно!
Автор: firewire123
Дата сообщения: 29.05.2011 19:56
какой флаг использовать чтобы ставить файл только в случае если подобного нет?
Автор: SotM
Дата сообщения: 29.05.2011 19:56
Neronk_2K
Здесь не обсуждаются реестры конкретных игр! Как тема называется? Inno Setup!
Иди в гугл, или на форумы, которые посвящены играм и там спрашивай. Зачем тут то спрашивать!?
Автор: Neronk_2K
Дата сообщения: 29.05.2011 19:58
SotM

Ты так потрудился чтоб написать этот пост... Не мог ли ты эту силу направить в лругое руслко, к примеру дать мне реестр или просто не писать!

Добавлено:
Всё уже помогли добрые люди, а злые только и знают что п*з*я*!
Автор: vintage 1
Дата сообщения: 29.05.2011 20:45
Neronk_2K

SotM правильно сказал!

Для начало чтобы удалять файлы нужно подумать раз 100 и проверить раз 500!
Ну и потом удалять!

И пожалуйста набудущее не тупить и не обзывать членов данного форума!

P.s извените за
Автор: Gnom3
Дата сообщения: 29.05.2011 20:50
vintage 1

Цитата:
Для начало чтобы удалять файлы нужно подумать раз 100 и проверить раз 500!
Ну и потом удалять!

Суть даже не в этом, Просто реестр какой-либо игры никаким боком не относится к данной теме. По правильному - давно пора создать отдельную тему - Репаки игр и программ, в которой все это дело обсуждать и узнавать. А за неимением таковой обращаться в личку к тем, кто предположительно мог-бы знать - к участникам релиз-групп, например.
Автор: vintage 1
Дата сообщения: 29.05.2011 20:57
Gnom3
Я согласен с тобой, но ведь эти люди не понимают, пишут то что хотят слышать.
Автор: ILIA1992
Дата сообщения: 29.05.2011 21:49
как мне можно убрать чёрное http://i22.fastpic.ru/thumb/2011/0529/25/8726dca2984d142e24dd45be16db1825.jpeg
Автор: Aerogiz
Дата сообщения: 29.05.2011 21:49
Подскажите пожалуйста как указать распаковку определенного архива в папку пользователя
Допустим на Vista и 7 стоит указывать C:\Users\{User}\AppData\Local\ - правильно или {UserName}?
А на XP как будет?

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177

Предыдущая тема: поиск


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.