VASYAKRN Цитата: Как создать лейб старт-время запуска сетапа и конец-конец распаковки как в закосе на блека от ник1967
[more=Как то так][Setup]
AppName=My Program
AppVerName=My Program version 1.5
DefaultDirName={pf}\My Program
[Code]
type TSystemTime = record wYear, wMonth, wDayOfWeek, wDay, wHour, wMinute, wSecond, wMilliseconds: Word; end;
var StartTime, Time: TSystemTime; StartFileTime, FileTime: TFileTime; TLabel: TNewStaticText;
function GetLocalTime(var lpSystemTime: TSystemTime): Boolean; external 'GetLocalTime@kernel32.dll stdcall';
function SystemTimeToFileTime(const lpSystemTime: TSystemTime; var lpFileTime: TFileTime): Boolean; external 'SystemTimeToFileTime@kernel32.dll stdcall';
function FileTimeToSystemTime(const lpFileTime: TFileTime; var lpSystemTime: TSystemTime): Boolean; external 'FileTimeToSystemTime@kernel32.dll stdcall';
Function GetWorkTime: String;
Begin
GetLocalTime(Time) {время завершения установки}
SystemTimeToFileTime(Time, FileTime)
SystemTimeToFileTime(StartTime, StartFileTime)
// здесь необходимо использовать 64-битовую арифметику ULARGE_INTEGER
FileTime.dwLowDateTime:= FileTime.dwLowDateTime - StartFileTime.dwLowDateTime
FileTime.dwHighDateTime:= FileTime.dwHighDateTime - StartFileTime.dwHighDateTime
FileTimeToSystemTime(FileTime, Time)
Result:= 'Длительность: ' + IntToStr(Time.wHour) + ' час, ' + IntToStr(Time.wMinute) + ' мин, ' + FloatToStr((Time.wSecond*1000 + Time.wMilliseconds)/1000) + ' сек.'
End;
Procedure CurPageChanged(CurPageID: Integer);
Begin
if CurPageID = wpFinished then TLabel.Caption:= TLabel.Caption + #13#10 + GetWorkTime;
End;
Procedure InitializeWizard;
Begin
GetLocalTime(StartTime) {время начала установки}
TLabel:= TNewStaticText.Create(WizardForm);
TLabel.Top:= WizardForm.CancelButton.Top;
TLabel.Left:= WizardForm.ClientWidth - WizardForm.CancelButton.Left - WizardForm.CancelButton.Width;
TLabel.Parent:= WizardForm;
TLabel.Caption:= 'Время старта: ' + IntToStr(StartTime.wHour) + ' час, ' + IntToStr(StartTime.wMinute) + ' мин, ' + FloatToStr((StartTime.wSecond*1000 + StartTime.wMilliseconds)/1000) + ' сек.' ;
End;[/more].
Sergey_Demchuk Цитата: Мне надо получить размер файлов в сумме, напротив которых стоит галочка в выборе компонентов.
Но вобщето в инно подсчитывается размер выбранных компонентов и отображается внизу страницы. А если ты хочешь получить эту цифру, чтобы использовать в дальнейшем то как то [more=так][Setup]
AppName=My Program
AppVerName=My Program 1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
OutputBaseFilename=setup
Compression=lzma
SolidCompression=yes
[Languages]
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"
[Messages]
ComponentsDiskSpaceMBLabel=[mb]
[Components]
Name: main; Description: Программные файлы; Flags: fixed; Types: custom compact full
Name: Component1; Description: Факультатив 1; Flags: checkablealone; Types: full
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
[Files]
Source: "C:\Documents and Settings\Администратор\Рабочий стол\1.rar"; DestDir: "{app}"; Flags: ignoreversion; Components: main
Source: "C:\Documents and Settings\Администратор\Рабочий стол\1.rar"; DestDir: "{app}"; Flags: ignoreversion; Components: Component1
[Icons]
Name: "{group}\My Program"; Filename: "{app}\MyProg.exe"
Name: "{group}\{cm:UninstallProgram,My Program}"; Filename: "{uninstallexe}"
Name: "{commondesktop}\My Program"; Filename: "{app}\MyProg.exe"; Tasks: desktopicon
[Code]
var
Lbl: TLabel;
procedure InitializeWizard();
begin
Lbl := TLabel.Create(WizardForm);
with WizardForm.ComponentsDiskSpaceLabel do
begin
Lbl.Top := Top;
Lbl.Left:= Left;
Lbl.AutoSize := True;
Lbl.Caption := 'Disk space requires (Mb): ';
Lbl.Parent := Parent;
Left:= Lbl.Left + Lbl.Width;
end;
end;
function NextButtonClick(CurPageID: Integer): Boolean;
var
str: string;
begin
if CurPageID = wpSelectComponents then
begin
MsgBox(WizardForm.ComponentsDiskSpaceLabel.Caption, mbInformation, MB_OK);
end;
Result:= True;
end;[/more]