哪位能给我一个 Delphi 写的 ActiveX Library 的例子 (50分)

  • 主题发起人 主题发起人 BDFan
  • 开始时间 开始时间
B

BDFan

Unregistered / Unconfirmed
GUEST, unregistred user!
我要返回 硬盘序列号
Var
SerialNum : pdword;
a, b : dword;
Result: String;
begin
GetVolumeInformation('C:/', nil, 0, SerialNum, a, b, nil, 0)
Result := IntToStr(SerialNum^);
end;
我想取得客户端硬盘的序列号,作为登录的身份验证。也就是取得序列号之后与服务器上的数据
比较,只有合法用户才能登录。

我要完成如下功能:(请看下文)
下文是用 VB 写的一个 OCX 控件,我想用 Delphi 完成,各位大侠帮帮我,分不够 我再加。
 
用硬盘序列号验证用户身份 ( 节选 )
叶梁
  本文介绍名为GetDiskKeyNo的ActiveX控件的开发技术,该控件能够读
取用户登录所用微机的硬盘序列号并进行加密后随表单信息一同传送至服务
器,与服务器数据库内的值相比较,用户名、密码、序列号都符合,则验证
通过,从而限制了一个合法用户只能在一台客户机上登录,防止了信息资源
流失。

  开发GetDiskKeyNo控件

  本文以Visual Basic开发工具为例,说明GetDiskKeyNo控件的开发过程。

。。。。。。。。。。

  '本属性返回已加密的硬盘序列号

  Dim Str1 As String?256, Str2 As String?256,Lon1 As Long, Lon2 As Long, strT As String

  Call GetVolumeInformation("C:/", Str1, 256, GetVal, Lon1, Lon2, Str2, 256)

  '取得硬盘序列号

  strT = Right(Str(GetVal), 8) '取8位

  keyno = encrypt(strT) '调用加密函数

  End Property

  4.编译GetDiskKeyNo控件

。。。。。

  结束语

  采用动态加密技术的GetDiskKeyNo控件能够读取客户机的硬盘序列号并动态加密,
在网站上结合ASP登录页面和验证程序,可以惟一地验证合法用户并限制用户仅在一台
客户机上登录。进行GetDiskKeyNo控件的分发、升级管理十分简单,本文所述技术特
别适用于提供有偿信息服务,且用户较多、分布范围广的网站使用。
 
楼上方法获取的序列号同一批硬盘是一样的,这个源程序获取厂商序列号:
http://www.8421.org/download.php?id=145
每个都不同
 
to qdyoung
你的那个程序我下载过,挺好用!
我现在是要用ActiveX控件实现,不过我现在已找到了答案!
谢谢你的回答!
 
大家看看 http://www.alltips.com/article/read.asp?id=307 这篇文章,
其中所说的 m_scriptContext 是什么,我怎么编译不过去。
Delphi_TLB 我怎么找不见
ASPTypeLibrary_TLB 已加

另外,在 procedure Ttestobject.test
中为什么不能调用 GetVolumeInformation 函数
 
大家是不是光看 http://www.alltips.com/article/read.asp?id=307 这篇文章,把我忘了,
大侠,帮帮我呀!!![:(]
 
接受答案了.
 
后退
顶部