哪位可以帮我这两段delphi代码转化为VB程序,高分相赠!!
注:不用考虑程序能否通过,只需要把每句相应的VB代码写出来就可以了
{************* 光盘校验************************}
procedure cdadjust(var sum:integer);
var
Reg,datereg,daycount: TRegistry;
i,j,dcount,t:integer;
yhandle:Thandle;
newdate,olddate:tdate;
fp:file;
bufe:array[1..100]of integer;
flag:boolean;
begin
{读取光盘验密表}
if fileexists(currentpath+'\cd.dat') then
begin
assignfile(fp,currentpath+'\cd.dat');
if FileIsReadOnly(currentpath+'\cd.dat') then
flag:=FileSetReadOnly(currentpath+'\cd.dat',false);
reset(fp,sizeof(bufe));
blockread(fp,bufe,1,i);
closefile(fp);
Randomize;
i:=random(100);
if i=0 then i:=1;
j:=KindForBuaa(i);
{showmessage(inttostr(j)); }
if j=bufe[i] then sum:= 0
else
begin
sum:=100;
with application do
begin
Normalizetopmosts;
t:=Messagebox( pchar('请插入正版光盘,重新启动本软件系统!'),formtitle,mb_ok);
restoretopmosts
end;
end
end
else
with application do
begin
Normalizetopmosts;
t:=Messagebox( pchar(currentpath+'\cd.dat'+'文件不存在,请装入它,重新启动系统!'),formtitle,mb_ok);
restoretopmosts
end;
end;
procedure TFormjx.FormActivate(Sender: TObject);
var
Reg,datereg,daycount: TRegistry;
i,j,k,dcount:integer;
yhandle:Thandle;
newdate,olddate:tdate;
begin {主程序运行前,读注册表检查运行次数,运行50次或者运行2个月要验密;
首先检验是否正版盘;然后检查密码字}
{上机次数写入注册表}
Reg := TRegistry.Create;
Reg.RootKey := HKEY_CURRENT_USER;
if not reg.KeyExists('\Software\'+psname+'\Count') then
begin
Reg.openkey('\Software\'+psname+'\Count',true);
Reg.Writeinteger('data',50);
end
else Reg.openkey('\Software\'+psname+'\Count',false);
i:=reg.ReadInteger('data');
{基日期写入注册表}
datereg:= TRegistry.Create;
datereg.RootKey := HKEY_CURRENT_USER;
if not datereg.KeyExists('\Software\'+psname+'\olddate') then
begin
datereg.openkey('\Software\'+psname+'\olddate',true);
datereg.WriteDate('olddate',now);
end
else
datereg.openkey('\Software\'+psname+'\olddate',false);
olddate:=datereg.ReadDate('olddate');
{**************工作日计数器写入注册表***************}
daycount := TRegistry.Create;
daycount.RootKey := HKEY_CURRENT_USER;
if not daycount.KeyExists('\Software\'+psname+'\daycount') then
begin
daycount.openkey('\Software\'+psname+'\daycount',true);
daycount.Writeinteger('daycount',00);
end
else daycount.openkey('\Software\'+psname+'\daycount',false);
dcount:=daycount.ReadInteger('daycount');
{datereg.WriteDate('olddate',now); }
newdate:=now;
j:=DaysBetween( Now, olddate);
dcount:=dcount+j;
{ showmessage(datetostr(olddate)+' '+datetostr(newdate)+' '+ ' dmonth='+inttostr(j)+'dcount='+inttostr(dcount));
}
if (i>0) and (dcount<60)then {不要验密}
begin
{保存启动次数}
i:=i-1; { showmessage(inttostr(i)); }
reg.WriteInteger('data',i);
reg.CloseKey;
{保存日期计数}
daycount.WriteInteger('daycount',dcount);
daycount.CloseKey;
{保存日期基数}
datereg.WriteDate( 'olddate',now);
datereg.CloseKey;
end
else
begin {启动验密机制}
{正版光盘校验;日计数清0}
{保存日期计数}
if dcount >=60 then
begin
cdadjust(k);
if k=0 then {校验正确}
begin
daycount.WriteInteger('daycount',0);
daycount.CloseKey;
datereg.WriteDate( 'olddate',now);
datereg.CloseKey;
end
else
begin {校验错误不改变日期基数}
datereg.CloseKey;
Formjx.Close;
end
end;
{操作数计数校验,计数值复位}
if i<=0 then
begin
reg.CloseKey;
FORM_YANMI.ShowModal;
datereg.WriteDate( 'olddate',now);
datereg.CloseKey;
end
end;
{保存当日为基日期}
end;
end.