Thilankap Ответов: 0

Установка Tlimit один раз в день с помощью innosetup


У меня есть сценарий Inno, созданный с помощью IKG (генератор ключей Inno)
Я хочу добавить этот шаг в свой сценарий
Пожалуйста, помогите мне.
Пользователь может устанавливать эту установку только один или два раза в день.

Напр.:

1. получить и проверить дату с помощью интернета (потому что пользователь может изменить дату ПК)

2. сохраните дату в реестре и файл в папке программы ({app}) (файл ограничения даты), например date.txt. Файл реестра и ограничения даты должен быть создан после копирования всех установочных файлов.

3. Проверьте ограничение по дате и перед началом установки (используя файл реестра и ограничения по дате)
я.предел за : Глутамат натрия Не Могу Установить
ii.Лимит не превышен или реестр и файл ограничения не имеют : начало установки
Файлы: 2016-10-27_asxctxuk | Files.fm.[^]

Пожалуйста, помогите мне. Спасибо

Что я уже пробовал:

Это мой сценарий Ikg

   [_ISTool]
EnableISX=true
Use7zip=false

[Files]
Source: sample2.iky; DestDir: {tmp}; Flags: ignoreversion


Source: ISID.dll; DestDir: {sys}\ISID; Flags: ignoreversion




[Setup]
AppName=Temp

AppVerName=1.0
DefaultDirName={pf}\
DefaultGroupName=Temp
OutputDir=output
OutputBaseFilename=setup

[ThirdParty]
CompileLogMethod=append

[Code]
type
  TProc=procedure(HandleW, msg, idEvent, TimeSys: LongWord);
  
var
  
  PicList: TStringlist;


function ValidateSerialNumber(InnoKeyFile, User, Orgn, ProdCode, HDD, MAC, PrivateKey, Serial: ansiString): Boolean;
external 'ValidateSerialNumber@files:ISID.dll stdcall';


var
	UserPage: TInputQueryWizardPage;
	UserValues: TArrayOfString;
  I: Integer;
  sHWID: ansiString;
procedure InitializeWizard();
begin
begin
PicList:=tstringlist.Create;
  ExtractTemporaryFile('sample2.iky');
 

end;  


UserPage := CreateInputQueryPage(wpInfoBefore,      //wpWelcome,

            'Enter Registration Details', 'You need to be a registered user to be able to proceed',

            'Enter your registration details exactly (CASE SENSITIVE), then click Next.                     ( Type {User ID-Game Name-User Code} Send SMS ) Tel No 071-9551010                  Support Time 8.30AM-6.00PM' );

	UserPage.Add('User Code:', False);
      UserPage.Add('Path Code:', true);
      UserPage.Add('Reg Code:', False);

for I := 0 to 1 do
      begin
        UserPage.Edits[I].ReadOnly := True;
        UserPage.Edits[I].Color := clBtnFace;
      end;

	{ Set default values }
  	SetArrayLength(UserValues, 3);
  	RegQueryStringValue(HKLM, 'Software\Microsoft\Windows\CurrentVersion', 'RegisteredOwner', UserValues[0]);
  	RegQueryStringValue(HKLM, 'Software\Microsoft\Windows\CurrentVersion', 'RegisteredOrganization', UserValues[1]);
  	if (UserValues[0] = '') and (UserValues[1] = '') then begin
    	RegQueryStringValue(HKCU, 'Software\Microsoft\MS Setup (ACME)\User Info', 'DefName', UserValues[0]);
    	RegQueryStringValue(HKCU, 'Software\Microsoft\MS Setup (ACME)\User Info', 'DefCompany', UserValues[1]);
  	end;


  	{ Try to find the settings that were stored last time (also see below). }
  	UserPage.Values[0] := GetPreviousData('MAC', UserValues[0]);
  	UserPage.Values[1] := GetPreviousData('Private', UserValues[1]);
  	UserPage.Values[2] := GetPreviousData('Unlock', UserValues[2]);
  	
    
    
      UserPage.Edits[0].Text := '123';
      UserPage.Edits[1].Text := '968699E9-0C9D-409A-9699-0197A9A9201A';
      UserPage.Edits[2].Text := '';
end;


procedure RegisterPreviousData(PreviousDataKey: Integer);
begin

  { Store the settings so we can restore them next time }

  SetPreviousData(PreviousDataKey, 'MAC', UserPage.Values[0]);
  SetPreviousData(PreviousDataKey, 'Private', UserPage.Values[1]);
  SetPreviousData(PreviousDataKey, 'Unlock', UserPage.Values[2]);

end;



function ScriptDlgPages(CurPage: Integer; BackClicked: Boolean): Boolean;
var
  	ExpPath: String;

begin

	Result := True;

	if (CurPage = UserPage.ID) then
	begin
				{ the public key file }

		ExpPath := ExpandConstant('{tmp}\sample2.iky');

		Result := False;

	  	UserValues[0] := UserPage.Values[0];
      UserValues[1] := UserPage.Values[1];
      UserValues[2] := UserPage.Values[2];

		if (UserValues[0] = '') or (UserValues[1] = '') or (UserValues[2] = '') then
			MsgBox('No fields can be blank !', mbError, MB_OK)
		else
		begin
			Result := ValidateSerialNumber( ExpPath,'','','','',UserValues[0],UserValues[1],UserValues[2] );
      
      
			if (not Result) then
				MsgBox('Invalid Serial !', mbError, MB_OK);

		end
	end

end;



function NextButtonClick(CurPage: Integer): Boolean;
begin
  Result := ScriptDlgPages(CurPage, False);
end;


function BackButtonClick(CurPage: Integer): Boolean;
begin
  Result := True;//ScriptDlgPages(CurPage, True);
end;


function HasHtmlHelp(): Boolean;
begin
	{ HHCTRL.OCX GUID }
	Result := RegValueExists(HKCR, 'CLSID\{152898F1-3E79-479E-846A-3988D37A0F0C}\InprocServer32', '');
end;


function HasNoHtmlHelp(): Boolean;
begin
	Result := not HasHtmlHelp;
end;

[no name]

Вы серьезно беспокоитесь о том, что кто-то устанавливает вашу программу на одну и ту же машину несколько раз в день? Почему? Какая у вас может быть причина для этого? Кроме того, вы никогда не задавали вопросов, не описывали проблему и никому не говорили, в чем вам нужна помощь.

Thilankap

Потому что у него есть онлайн-логины (но у него есть ограниченные логины). один пользователь устанавливает его много раз, другие пользователи не могут его установить.

[no name]

Ты понимаешь, что это бессмысленно? И вы до сих пор не задали вопрос, не описали проблему и не сказали, в чем вам нужна помощь.

Thilankap

Я хочу добавить 1,2,3 выше шаг к моему сценарию.

[no name]

Хорошо, так что давай и делай это. Никто здесь не сделает этого за тебя.

0 Ответов