效果,只有当指定U盘插入才能打开该程序。该U盘的硬件序列号作为解密的密匙。代码如下:
procedure TForm1.GetDiskKey;
const
drivers:array[0..25] of string=('A:\','B:\','C:\','D:\','E:\','F:\','G:\','H:\','I:\','J:\','K:\','L:\','M:\','N:\','O:\','P:\','Q:\','R:\','S:\','T:\','U:\','V:\','W:\','X:\','Y:\','Z:\');
var i,sresult:integer;
isKey:boolean;
begin
isKey := false;
for I := 0 to 25 do
begin
sresult:=getdrivetype(pchar(drivers[i]));
if (sresult=drive_removable) then
begin
if (GetDiskID(PWidechar(drivers[i]))='876986194') then
begin
isKey := true;
break;
end;
end;
end;
if not isKey then Application.Terminate;
end;
其中包含有GetDiskID函数的单元
使用方法,直接在FormCreate或OnCanResize或OnActivate事件中加上如下代码:
Form1.GetDiskKey