Лександер, почему тебе не отправить пм?
Надоело уже думать за всех, отключил прием сообщений ото всех, кроме тех, кто есть в адресной книге.
TRMK, Пробуй:
; Скрипт создан через Мастер Inno Setup Script.
; ИСПОЛЬЗУЙТЕ ДОКУМЕНТАЦИЮ ДЛЯ ПОДРОБНОСТЕЙ ИСПОЛЬЗОВАНИЯ INNO SETUP!
; Версию указываеш здесь. проверку по дробной версии делать не стал - и так голова опухла уже.
#define VERSION 1
; Дает возможность ограничить количество запусков на одной машине
; на определенное количество раз. После чего можно запустить инсталл
; только либо следующей версии, либо предидущей.
; Количество запусков указать здесь:
#define COUNT 5
[Setup]
AppName=My Application
AppVersion={#VERSION}
OutputBaseFilename=MiProg
DefaultDirName={pf}\My Application
Код: Выделить всё
var ver,n,m: String;
function InitializeSetup(): Boolean;
begin
if not (RegQueryStringValue(HKLM, 'SOFTWARE\Company\ProgramName','InsNum',n)
and RegQueryStringValue(HKLM, 'SOFTWARE\Company\ProgramName','InsVer',ver))then begin
ver:='{#VERSION}';
RegWriteStringValue(HKLM, 'SOFTWARE\Company\ProgramName','InsNum', '1');
RegWriteStringValue(HKLM, 'SOFTWARE\Company\ProgramName','InsVer', ver);
Result:=True;
end;
if RegQueryStringValue(HKLM, 'SOFTWARE\Company\ProgramName','InsVer',ver)then
if(StrToInt(ver){#VERSION})then begin ver:='{#VERSION}';
RegWriteStringValue(HKLM, 'SOFTWARE\Company\ProgramName','InsNum', '1');
RegWriteStringValue(HKLM, 'SOFTWARE\Company\ProgramName','InsVer', ver);
Result:=True;
end;
if RegQueryStringValue(HKLM, 'SOFTWARE\Company\ProgramName','InsNum',n) then begin
m :=IntToStr(StrToInt(n)+1);
RegWriteStringValue(HKLM, 'SOFTWARE\Company\ProgramName','InsNum', m);
if (StrToInt(n)>{#COUNT}) then if (StrToInt(ver)={#VERSION})then begin
MsgBox( 'Error', mbinformation, mb_ok );
Result:=False;
end else begin
if ((StrToInt(n)={#Count}) then begin
MsgBox( 'Error', mbinformation, mb_ok );
Result:= False;
Exit;
end;
if (regv=-1)or(regv{#Version}) then RegWriteDWordValue(HKLM, 'SOFTWARE\Company\ProgramName', 'InsVer', {#Version});
regmod:= regn+1;
if (regv{#Version})or(regn=-1) then regmod:=1; RegWriteDWordValue(HKLM, 'SOFTWARE\Company\ProgramName', 'InsNum', regmod);
Result:= True;
end;