效果,只有当指定U盘插入才能打开该程序。该U盘的硬件序列号作为解密的密匙。代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | 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