Установка 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]
Хорошо, так что давай и делай это. Никто здесь не сделает этого за тебя.