-- Шаблон создан мастером бланков
-- 15.03.2004 12:54:19
--
БланкСШаблоном "Ввод лицензионного кода";

cbПример:Object;

var Lic143:S;
var FlagOff:L;

Func ПроверитьСимвол (St :S) :L;
 if St>="0" and St<="9": ^True;
   |St>="A" and St<="F": ^True;
   |St>="a" and St<="f": ^True;
   |St="-": ^True;
 fi;
 ^False;
end;

Func КодДопустимый(Код:S):L;
var n, Len:I;
var Char,BadChars:S;
 Len=Length(Код);
 for n=1..Len do
  Char=SubStr(Код,n,1);
  if ПроверитьСимвол(Char)=False:
     Message("Недопустимо использовать символ: "+Char+" при вводе лицензионного кода!");
     ^False;
  fi;
 od;
 ^True;
end;

Func Lic143_onValidate (Field:S; Iter:I; Value:S):L;
 ^КодДопустимый(Value);
end;

Proc btnLic143_onClick (Obj:S);
var Путь,ver:S;
var n,z:i;
 if Lic143="": Message("Введите лицензионный код !"); Template.Field="Lic19"; Exit; fi;
 ver=Version;
 ver=SubStr(ver,1,3);
 if ver="6.s": ver="6.sql"; fi;

 if Раб.Python.LoadAndImport("_winreg",False):
    try
      Раб.Python.Exec("tbw=_winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE,r'SOFTWARE\DIC\TBW\"+ver+"')");
      Раб.Python.Exec("tb_subs=_winreg.CreateKey(tbw,'008F')");
      Раб.Python.Exec("lic=_winreg.CreateKey(tb_subs,'License')");
      Раб.Python.Exec("_winreg.SetValueEx(lic,'Number',0,_winreg.REG_SZ,'"+Lic143+"')");
    finally
      Раб.Python.UnLoad;
    end;
 else
    Путь=PlanVar("CACHE");
    CreateFile(Путь+"\lic143.reg");
    WriteLn(Путь+"\lic143.reg","REGEDIT4");
    Writeln(Путь+"\lic143.reg","[HKEY_LOCAL_MACHINE\Software\Dic\Tbw\"+ver+"\008F\License]");
    WriteLn(Путь+"\lic143.reg",'"Number"="'+Lic143+'"');
    ExecuteProgram(Путь+"\lic143.reg",True);
 fi;
-- Путь=Раб.Бюджет2005.Контроль2Слэш(PlanVar("Std_rpo")+"\Bin\TBReg.exe");
-- ExecuteProgram(Путь+" --system=143 --license="+Lic143+" --name=Бюджет-157н",True);
 for n=1..10 do
  z=LicenseCheck(143);
 od;
 if z=0: Message("Неправильный лицензионный код!");
   else
    Message("Для вступления изменений в силу необходимо перезапустить программу.");
    FlagOff=True;
    Close;
 fi;
end;

Proc btnПример_OnClick(Sender: String);
 OpenBlank("Раб.Вспом.Лиц143_Пример",True);
end;

Proc Template_onOpen (Create:L);
var Ver:i;
 Ver=Раб.Сис.ProgramVersion;
 if Ver=Раб.Сис.verDemo or Ver=Раб.Сис.verEduc: Close; fi;
 if LicenseCheck(143)<>0: Close; fi;
end;

Proc Template_onClose (Destroy:L);
end;

Конец
