设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 1358|回复: 8
打印 上一主题 下一主题

[其它] [求助]access中能否像exe文件一样编写注册码,防止拷贝使用

[复制链接]
跳转到指定楼层
1#
发表于 2002-12-11 04:15:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
access中能否像exe文件一样编写注册码,防止拷贝使用
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2002-12-11 05:29:00 | 只看该作者
excel怎么编写注册吗?防止copy的?你先讲一下原理
3#
 楼主| 发表于 2002-12-11 06:34:00 | 只看该作者
不好意思,不清楚,望指教,另我指每张光盘只保证一个用户使用,强行注册,好像setup文件也不能保证,最好是在mdb中注册,读机器码,硬盘号,cpuid之类,望能多多指教!
4#
发表于 2002-12-11 16:33:00 | 只看该作者
使用Windows API读硬盘序列号,根据序列号生成注册码,就可以保证注册码唯一。
读硬盘序列号的源程序如下:
Private Declare Function GetVolumeInformation Lib "kernel32" _
Alias "GetVolumeInformationA" _
(ByVal lpRootPathName As String, _
ByVal lpVolumeNameBuffer As String, _
ByVal nVolumeNameSize As Long, _
lpVolumeSerialNumber As Long, _
lpMaximumComponentLength As Long, _
lpFileSystemFlags As Long, _
ByVal lpFileSystemNameBuffer As String, _
ByVal nFileSystemNameSize As Long) As Long

Function dhPrintVolInfo(Optional strDrive As String = vbNullString)

    ' Sample procedure demonstrating GetVolumeInformation API function.

    ' From "VBA Developer's Handbook"
    ' by Ken Getz and Mike Gilbert
    ' Copyright 1997; Sybex, Inc. All rights reserved.

    ' In:
    '   strDrive (Optional, default = vbNullString)
    '       String representing root directory of a drive
    '       (e.g. "C:\") or empty string for current drive.
    ' Out:
    '   Return Value:
    '       n/a
    ' Example:
    '   Call dhPrintVolInfo

    Dim strVolLabel As String
    Dim strFileSystem As String
    Dim lngVolumeSerialNumber As Long
    Dim lngMaximumComponentLength As Long
    Dim lngFileSystemFlags As Long

    ' Set up the buffers
    strVolLabel = Space(255)
    strFileSystem = Space(255)
   
    ' Call GetVolumeInformation
    If CBool(GetVolumeInformation(strDrive, _
     strVolLabel, Len(strVolLabel), _
     lngVolumeSerialNumber, _
     lngMaximumComponentLength, _
     lngFileSystemFlags, _
     strFileSystem, Len(strFileSystem))) Then
        
        ' Parse buffers
        strVolLabel = dhTrimNull(strVolLabel)
        strFileSystem = dhTrimNull(strFileSystem)
        
        ' Print information
'        Debug.Print strDrive, _
'         strVolLabel, _
'         Hex(lngVolumeSerialNumber), _
'         lngMaximumComponentLength
        dhPrintVolInfo = Hex(lngVolumeSerialNumber)
    End If
End Function
如果要获取C:\序列号,可这样调用:
dim snC
snC=dhPrintVolInfo("C:\")

5#
 楼主| 发表于 2002-12-12 06:03:00 | 只看该作者
谢谢,非常感谢,望以后多指点!
6#
发表于 2002-12-12 06:18:00 | 只看该作者
http://www.china-askpro.com/msg44/qa00.shtml
7#
发表于 2002-12-12 06:29:00 | 只看该作者
cnwang,那有什么好方法?
8#
发表于 2002-12-12 08:01:00 | 只看该作者
看有无不能改的硬件ID,比如主板、CPU。。。。
系统中用到对外文件则可以公司名称做文章。
9#
发表于 2009-9-7 22:45:53 | 只看该作者
感谢啊啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-19 14:35 , Processed in 0.091421 second(s), 33 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表