当前位置: 网学 > 编程文档 > VB > 正文

直接从RING3获取硬盘序列号

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/16
下载{$ArticleTitle}原创论文样式

''****************************************************************
''原作: Bardo
''出处: 《东方热讯》网站
''网址: www.easthot.net
''****************************************************************
''(如需转载,请不在删除以上信息,否则视为侵权!)
''****************************************************************

    要这个有什么用?可以生成与硬件相关的注册码。控制软件不重复使用!那么,很多多人认为VB实现不了。自然没有找到方法,一定是实现不了。然而,感谢WWW,我们能在上面找到VC的源码,DELPHI的源码。但是VB的就是见不到。为此,我决定将VC的源码改成vb的,以下即是:

''VC原作说明部分(再发行时,请注意采用注解的方式,请不要删除的方式侵权,谢谢!)
''*************************************************************************
''通常情况下,我们通过=&HEC命令对IDE端口进行监测.获取硬盘信息.
''一般情况下,我们就写个VXD或者DRIVER来完成.但是现在,通过MS的S.M.A.R.T.接口,
''我们可以直接从RING3调用API DeviceIoControl()来获取硬盘信息.下面乃是我的例程:
''另外,也有编译好的版本供大家平时使用.欢迎下载.
''/*+++
''HDID.CPP
''Written by Lu Lin
''http://lu0.126.com
''2000.11.3
''---*/
''*************************************************************************
''VB程序编制: BARDO
''本来我想写一个只取盘动物理序列号的。但是考虑到大家学习的方便。还是将原来的代码
''全部翻译了出来。如果你需要单一的只查一个主硬盘的序列号的程序,欢迎到本站下载
''
''网站:东方热讯:http://www.easthot.net
''邮件:sales@easthot.net
''2003.01.23
''*************************************************************************
Option Explicit
''以下这一行是必须的,困为要做结构复制。而结构中有数组。所以,没有它则会错位
Option Base 0

Private Const DFP_GET_VERSION = &H74080
Private Const DFP_SEND_DRIVE_COMMAND = &H7C084
Private Const DFP_RECEIVE_DRIVE_DATA = &H7C088

''#pragma pack(1)
Private Type TGETVERSIONOUTPARAMS   ''{
    bVersion As Byte  ''Binary driver version.
    bRevision As Byte ''Binary driver revision.
    bReserved As Byte  ''Not used.
    bIDEDeviceMap As Byte ''Bit map of IDE devices.
    fCapabilities As Long ''Bit mask of driver capabilities.
    dwReserved(4) As Long ''For future use.
End Type

Private Type TIDEREGS
    bFeaturesReg As Byte   ''Used for specifying SMART "commands".
    bSectorCountReg As Byte  ''IDE sector count register
    bSectorNumberReg As Byte  ''IDE sector number register
    bCylLowReg As Byte    ''IDE low order cylinder value
    bCylHighReg As Byte   ''IDE high order cylinder value
    bDriveHeadReg As Byte   ''IDE drive/head register
    bCommandReg As Byte   ''Actual IDE command.
    bReserved As Byte    ''reserved for futu
  • 下一篇资讯: vb中使用正则表达式
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号