| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4726 人关注过本帖
标题:vb 实现绑定机器码
只看楼主 加入收藏
健康我
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2014-10-28
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:12 
vb 实现绑定机器码
我想让我vb软件绑定机器码(mac地址,硬盘序列号等)有没大侠能提供下思路和代码,实在是初学者,帮帮忙啦!!!可以发我邮箱2952867097@,万分感谢!
搜索更多相关主题的帖子: 序列号 软件 
2014-11-27 15:35
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:5 
又是发邮箱  都是大侠啊

DO IT YOURSELF !
2014-11-27 15:36
健康我
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2014-10-28
收藏
得分:0 
回复 2 楼 wp231957
怎么说?其实我是想要是正好做过有现成代码的,顺个手发一下!自己都觉得 有点做梦的感觉!
2014-11-27 15:39
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
网上搜一下  vb获取本机的网卡mac 或者硬盘的id 等等  应该有现成的代码

DO IT YOURSELF !
2014-11-27 15:40
健康我
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2014-10-28
收藏
得分:0 
回复 2 楼 wp231957
哎!刚学vb,没有老师,每天都会遇到问题,看书上网到处找,老板又天天催,很无奈呀!我本来是建模的现在让我编程,赶鸭子上架!!!!
2014-11-27 15:42
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
回复 5 楼 健康我
其实网上源代码很多滴   仔细找找

DO IT YOURSELF !
2014-11-27 15:44
健康我
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2014-10-28
收藏
得分:0 
回复 4 楼 wp231957
获取以后怎么办呀,得比较吧!可能大师要问了,你怎么连这都不会,我已经问了自己几百遍了。对了二十多年书,从来没有像现在这样体会到老师的可贵
2014-11-27 15:45
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
这取决于你如何设计了 获取mac或id 后 你想用来干嘛   一般来说都是用于限定程序只能在某台机器上使用

DO IT YOURSELF !
2014-11-27 15:47
健康我
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2014-10-28
收藏
得分:0 
回复 8 楼 wp231957
就是这个意思,获取信息后与加入的信息比较,符合程序正常运行不符就直接退出或运行错误!
2014-11-27 15:56
健康我
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2014-10-28
收藏
得分:0 
Private Const MAX_IDE_DRIVES       As Long = 4
Private Const IDENTIFY_BUFFER_SIZE       As Long = 512
Private Const DFP_SEND_DRIVE_COMMAND       As Long = &H7C084
Private Const DFP_RECEIVE_DRIVE_DATA       As Long = &H7C088

Private Type GETVERSIONOUTPARAMS
        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(3)   As Long       '   For   future   use.
End Type
Private Type IDEREGS
        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.
End Type

Private Type SENDCMDINPARAMS
        cBufferSize   As Long                   '   Buffer   size   in   bytes
        irDriveRegs   As IDEREGS             '   Structure   with   drive   register   values.
        bDriveNumber   As Byte                 '   Physical   drive   number   to   send
        bReserved(2)   As Byte                 '   Reserved   for   future   expansion.
        dwReserved(3)   As Long               '   For   future   use.
        bBuffer(0)   As Byte                     '   Input   buffer.
End Type
Private Const IDE_ATAPI_ID       As Long = &HA1           '   Returns   ID   sector   for   ATAPI.
Private Const IDE_ID_FUNCTION       As Long = &HEC           '   Returns   ID   sector   for   ATA.
Private Const IDE_EXECUTE_SMART_FUNCTION       As Long = &HB0           '   Performs   SMART   cmd.
Private Type DRIVERSTATUS
        bReserved(1)   As Byte                 '   Reserved   for   future   expansion.
        dwReserved(1)   As Long               '   Reserved   for   future   expansion.
End Type

Private Type SENDCMDOUTPARAMS
        cBufferSize   As Long                   '   Size   of   bBuffer   in   bytes
        drvStatus   As DRIVERSTATUS       '   Driver   status   structure.
        bBuffer(0)   As Byte                     '   Buffer   of   arbitrary   length   in   which   to   store   the   data   read   from   the                                                                                     '   drive.
End Type


Private Type ATTRTHRESHOLD
        bAttrID   As Byte                           '   Identifies   which   attribute
        bWarrantyThreshold   As Byte     '   Triggering   value
        bReserved(9)   As Byte               '
End Type

Private Type IDSECTOR
        wGenConfig   As Integer
        wNumCyls   As Integer
        wReserved   As Integer
        wNumHeads   As Integer
        wBytesPerTrack   As Integer
        wBytesPerSector   As Integer
        wSectorsPerTrack   As Integer
        wVendorUnique(2)   As Integer
        sSerialNumber(19)   As Byte
        wBufferType   As Integer
        sFirmwareRev(7)   As Byte
        sModelNumber(39)   As Byte
End Type

Private Const VER_PLATFORM_WIN32s As Long = 0
Private Const VER_PLATFORM_WIN32_WINDOWS As Long = 1
Private Const VER_PLATFORM_WIN32_NT As Long = 2
Private Type OSVERSIONINFO
        dwOSVersionInfoSize   As Long
        dwMajorVersion   As Long
        dwMinorVersion   As Long
        dwBuildNumber   As Long
        dwPlatformId   As Long
        szCSDVersion   As String * 128                   '     Maintenance   string   for   PSS   usage
End Type

Private Declare Function GetVersionEx Lib "KERNEL32" Alias "GetVersionExA" (lpVersionInformation As OSVERSIONINFO) As Long
Private Const GENERIC_READ       As Long = &H80000000
Private Const GENERIC_WRITE       As Long = &H40000000
Private Const OPEN_EXISTING         As Long = 3
Private Declare Function CreateFile Lib "KERNEL32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, ByVal lpSecurityAttributes As Long, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long
Private Declare Function DeviceIoControl Lib "KERNEL32" (ByVal hDevice As Long, ByVal dwIoControlCode As Long, lpInBuffer As Any, ByVal nInBufferSize As Long, lpOutBuffer As Any, ByVal nOutBufferSize As Long, lpBytesReturned As Long, ByVal lpOverlapped As Long) As Long
Private Declare Sub CopyMemory Lib "KERNEL32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
Private Declare Function CloseHandle Lib "KERNEL32" (ByVal hObject As Long) As Long
Private m_DiskInfo As IDSECTOR

Private Function OpenSMART(ByVal nDrive As Byte) As Long
      Dim hSMARTIOCTL&, hd$
      Dim VersionInfo     As OSVERSIONINFO
      VersionInfo.dwOSVersionInfoSize = Len(VersionInfo)
      GetVersionEx VersionInfo
      Select Case VersionInfo.dwPlatformId
            Case VER_PLATFORM_WIN32s
                  OpenSMART = hSMARTIOCTL
            Case VER_PLATFORM_WIN32_WINDOWS
                  hSMARTIOCTL = CreateFile("//./SMARTVSD", 0, 0, 0, CREATE_NEW, 0, 0)
            Case VER_PLATFORM_WIN32_NT
                  If nDrive < MAX_IDE_DRIVES Then
                        hd = "//./PhysicalDrive" & nDrive
                        hSMARTIOCTL = CreateFile(hd, GENERIC_READ Or GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, 0, OPEN_EXISTING, 0, 0)
                  End If
      End Select
      OpenSMART = hSMARTIOCTL
End Function

Private Function DoIDENTIFY(ByVal hSMARTIOCTL As Long, pSCIP As SENDCMDINPARAMS, pSCOP() As Byte, ByVal bIDCmd As Byte, ByVal bDriveNum As Byte, lpcbBytesReturned As Long) As Boolean
      pSCIP.irDriveRegs.bDriveHeadReg = &HA0 Or ((bDriveNum And 1) * 2 ^ 4)
      pSCIP.irDriveRegs.bCommandReg = bIDCmd
      pSCIP.bDriveNumber = bDriveNum
      DoIDENTIFY = CBool(DeviceIoControl(hSMARTIOCTL, DFP_RECEIVE_DRIVE_DATA, pSCIP, 32, pSCOP(0), 528, lpcbBytesReturned, 0))
End Function

Public Function GetDiskInfo(ByVal nDrive As Byte) As Long
      Dim hSMARTIOCTL&, cbBytesReturned&
      Dim VersionParams     As GETVERSIONOUTPARAMS
      Dim scip     As SENDCMDINPARAMS
      Dim scop()     As Byte
      Dim OutCmd     As SENDCMDOUTPARAMS
      Dim bDfpDriveMap     As Byte
      Dim bIDCmd     As Byte                                           '   IDE   or   ATAPI   IDENTIFY   cmd
      Dim uDisk     As IDSECTOR
      m_DiskInfo = uDisk
      hSMARTIOCTL = OpenSMART(nDrive)
      If hSMARTIOCTL <> INVALID_HANDLE_VALUE Then
            Call DeviceIoControl(hSMARTIOCTL, DFP_GET_VERSION, ByVal 0, 0, VersionParams, Len(VersionParams), cbBytesReturned, 0)
            bIDCmd = IIf((VersionParams.bIDEDeviceMap / 2 ^ nDrive And &H10), IDE_ATAPI_ID, IDE_ID_FUNCTION)
            ReDim scop(LenB(OutCmd) + IDENTIFY_BUFFER_SIZE - 1) As Byte
            If DoIDENTIFY(hSMARTIOCTL, scip, scop, bIDCmd, nDrive, cbBytesReturned) Then
                  CopyMemory m_DiskInfo, scop(LenB(OutCmd) - 4), LenB(m_DiskInfo)
                  CloseHandle hSMARTIOCTL
                  GetDiskInfo = 1
                  Exit Function
            End If
            CloseHandle hSMARTIOCTL
            GetDiskInfo = 0
      End If
End Function

Public Function GetHDlist() As String
      If GetDiskInfo(0) = 1 Then
            GetHDlist = "硬盘物理系列号:" & Trim(StrConv(m_DiskInfo.sSerialNumber, vbUnicode))
            'GetHDlist = "硬盘型号:" & StrConv(m_DiskInfo.sModelNumber, vbUnicode)
      Else
        GetHDlist = "读取错误"
      End If
End Function

这里已经获取了硬盘型号,怎么写判断语句,与我设定的硬盘号(比如123456)比较,一致则运行,不一致则关闭系统????
2014-11-27 17:02
快速回复:vb 实现绑定机器码
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024476 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved