Скрипты Inno Setup. Помощь и советы [часть 3]
-
actavir
Re: Скрипты Inno Setup. Помощь и советы [часть 3]
Мда Лександр, чёто у меня ничё не получается.((((((((
Народ есть у кого-нибудь скрипт растягивания изображения на ВСЕ страницы, ну или хотя бы на SelectProgramGroupPage????
Выручите плиз!!!!!!!!
Народ есть у кого-нибудь скрипт растягивания изображения на ВСЕ страницы, ну или хотя бы на SelectProgramGroupPage????
Выручите плиз!!!!!!!!
-
Gnom_aka_Lexander
Re: Скрипты Inno Setup. Помощь и советы [часть 3]
Цитата ryabis:
Как в скрипте вызвать функцию из WinAPI? Функция GetFileVersionInfo.
Многими системными функциями на данный момент, воспользоваться просто не возможно, т.к. проблема в том, что Pointer'a в Inno Setup нет.
Как в скрипте вызвать функцию из WinAPI? Функция GetFileVersionInfo.
Скрипты Inno Setup. Помощь и советы [часть 3]
Многими системными функциями на данный момент, воспользоваться просто не возможно, т.к. проблема в том, что Pointer'a в Inno Setup нет.
-
actavir
Re: Скрипты Inno Setup. Помощь и советы [часть 3]
Цитата Serega:
Многими системными функциями на данный момент, воспользоваться просто не возможно, т.к. проблема в том, что Pointer'a в Inno Setup нет.
когда делал function GetFileVersionInfo(...; lpData: Pointer) заменил Pointer на PСhar и это сработало.
Многими системными функциями на данный момент, воспользоваться просто не возможно, т.к. проблема в том, что Pointer'a в Inno Setup нет.
Скрипты Inno Setup. Помощь и советы [часть 3]
когда делал function GetFileVersionInfo(...; lpData: Pointer) заменил Pointer на PСhar и это сработало.

-
Gnom_aka_Lexander
Re: Скрипты Inno Setup. Помощь и советы [часть 3]
Цитата ryabis:
заменил Pointer на PСhar и это сработало
Да, я иногда так делаю, но это работает не всегда, т.к. PСhar это указатель на строку, а если нужно что-то другое...
P.S.
Когда что-то сильно надо заказчику, т.е. обязательно нужно сделать какую-то проверку перед установкой его программы, но Inno Setup это не поддерживает, то мне проще написать доп. dll и быть уверенным, что это корректно отработает на всех системах.
Многие вещи можно сделать в Inno, но к сожалению не всё.
заменил 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, Единственная беда - идентифицировать инсталлятор - но с этим, я думаю, помогут, у R.i.m.s.k.y. здорово получаются такие вещи.
-
Gnom_aka_Lexander
Re: Скрипты Inno Setup. Помощь и советы [часть 3]
Немножко оффтопика.
duxa
Цитата duxa:
Ух...и сколько это распаковываться будет?
Неделю, не меньше. А вообще при слове Paq9 сразу вспоминается KopeRip или как то так его звали, чей репак распаковывался 10 часов. Ох и наслушался он тогда в свой адрес лестных слов.
Пардон за
duxa
Цитата duxa:
Ух...и сколько это распаковываться будет?
Скрипты Inno Setup. Помощь и советы [часть 3]
Неделю, не меньше. А вообще при слове Paq9 сразу вспоминается KopeRip или как то так его звали, чей репак распаковывался 10 часов. Ох и наслушался он тогда в свой адрес лестных слов.
Пардон за

-
nik1967
Re: Скрипты Inno Setup. Помощь и советы [часть 3]
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;