Скрипты Inno Setup. Помощь и советы [часть 3]

Ответить
 • Просмотры: 27
Аватара пользователя
actavir

Re: Скрипты Inno Setup. Помощь и советы [часть 3]

Сообщение actavir »

Мда Лександр, чёто у меня ничё не получается.((((((((



Народ есть у кого-нибудь скрипт растягивания изображения на ВСЕ страницы, ну или хотя бы на SelectProgramGroupPage????

Выручите плиз!!!!!!!!
Аватара пользователя
Gnom_aka_Lexander

Re: Скрипты Inno Setup. Помощь и советы [часть 3]

Сообщение Gnom_aka_Lexander »

Цитата ryabis:



Как в скрипте вызвать функцию из WinAPI? Функция GetFileVersionInfo.
Скрипты Inno Setup. Помощь и советы [часть 3]




Многими системными функциями на данный момент, воспользоваться просто не возможно, т.к. проблема в том, что Pointer'a в Inno Setup нет.
Аватара пользователя
actavir

Re: Скрипты Inno Setup. Помощь и советы [часть 3]

Сообщение actavir »

Цитата Serega:



Многими системными функциями на данный момент, воспользоваться просто не возможно, т.к. проблема в том, что Pointer'a в Inno Setup нет.
Скрипты Inno Setup. Помощь и советы [часть 3]




когда делал function GetFileVersionInfo(...; lpData: Pointer) заменил Pointer на PСhar и это сработало. Изображение
Аватара пользователя
Gnom_aka_Lexander

Re: Скрипты Inno Setup. Помощь и советы [часть 3]

Сообщение Gnom_aka_Lexander »

Цитата ryabis:



заменил Pointer на PСhar и это сработало
Скрипты Inno Setup. Помощь и советы [часть 3]




Да, я иногда так делаю, но это работает не всегда, т.к. PСhar это указатель на строку, а если нужно что-то другое...



P.S.

Когда что-то сильно надо заказчику, т.е. обязательно нужно сделать какую-то проверку перед установкой его программы, но Inno Setup это не поддерживает, то мне проще написать доп. dll и быть уверенным, что это корректно отработает на всех системах.

Многие вещи можно сделать в Inno, но к сожалению не всё.
Аватара пользователя
R3Pa4eK

Re: Скрипты Inno Setup. Помощь и советы [часть 3]

Сообщение R3Pa4eK »

Привет всем! У меня вопрос: Как во время установки проверить: не запущен ли параллельно экземпляр установки? И если запущен, то второй экземпляр установки закрыть, а для первого экземпляра установки нужно активировать окно, чтобы показать статус установки?
Аватара пользователя
R3Pa4eK

Re: Скрипты Inno Setup. Помощь и советы [часть 3]

Сообщение R3Pa4eK »

R3Pa4eK, Единственная беда - идентифицировать инсталлятор - но с этим, я думаю, помогут, у R.i.m.s.k.y. здорово получаются такие вещи.
Аватара пользователя
Gnom_aka_Lexander

Re: Скрипты Inno Setup. Помощь и советы [часть 3]

Сообщение Gnom_aka_Lexander »

Немножко оффтопика.

duxa


Цитата duxa:



Ух...и сколько это распаковываться будет?
Скрипты Inno Setup. Помощь и советы [часть 3]




Неделю, не меньше. А вообще при слове Paq9 сразу вспоминается KopeRip или как то так его звали, чей репак распаковывался 10 часов. Ох и наслушался он тогда в свой адрес лестных слов.

Пардон за Изображение
Аватара пользователя
nik1967

Re: Скрипты Inno Setup. Помощь и советы [часть 3]

Сообщение nik1967 »

actavir,

Не совсем то, но может пригодиться:


Time of installing от Victor_Dobrov




Код:

Код: Выделить всё

[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)/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)/1000) + ' сек.' ;
End;
Ответить

Вернуться в «Автоматическая установка приложений»