yfglr.pas

来自「本人编写的有关军队营房工作的管理系统」· PAS 代码 · 共 85 行

PAS
85
字号
unit yfglr;

interface

uses
  SysUtils, Classes, windows;

function Get_SerialNo: string;stdcall;
function get_date: tdatetime;stdcall;
function get_regsn: string;stdcall;
function get_pass(password:string): boolean;stdcall;
function Get_Serial: string;stdcall;

implementation

function Get_SerialNo: string;
var
VolumeSerialNumber : DWORD;
MaximumComponentLength : DWORD;
FileSystemFlags : DWORD;
begin
result := '';
try
GetVolumeInformation(PChar('c:\'),nil, 0, @VolumeSerialNumber,MaximumComponentLength, FileSystemFlags,nil, 0);
result:= IntToHex(HiWord(VolumeSerialNumber), 4) + '-' + IntToHex(LoWord(VolumeSerialNumber), 4);
except  
end;
end;

function get_date:tdatetime;stdcall;
begin
  result:=strtodate('2006-1-1');
end;

function get_regsn:string;stdcall;
var
  str1,str2,str3:string;
  i,j,s:integer;
begin
  str1:=Get_Serial;
  str2:='';
  str3:='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
  for i:=1 to 20 do
    begin
      s:=0;
      for j:=1 to length(str1) do
        begin
          s:=s+ord(str1[j])*i;
        end;
      s:=(s mod 62)+1;
      str2:=str2+str3[s];
    end;
  result:=str2;
end;

function get_pass(password:string): boolean; stdcall;
begin
  if password=get_regsn then
    result:=true
  else
    result:=false;
end;

function get_serial:string;stdcall;
var
  str2,str3:string;
  i,j,s:integer;
begin
  str2:='';
  str3:='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
  for i:=1 to 20 do
    begin
      s:=0;
      for j:=1 to length(Get_SerialNo) do
        begin
          s:=s+ord(Get_SerialNo[j])*i;
        end;
      s:=(s mod 62)+1;
      str2:=str2+str3[s];
    end;
  result:=str2;
end;

end.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?