| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2433 人关注过本帖
标题:哪位老师有运行软件时读取计算机硬件信息的代码,以防自己编写的程序被拷贝 ...
只看楼主 加入收藏
zhaozhiwei75
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2012-11-28
结帖率:0
收藏
已结贴  问题点数:20 回复次数:19 
哪位老师有运行软件时读取计算机硬件信息的代码,以防自己编写的程序被拷贝到别的计算机上运行。谢谢!
哪位老师有运行软件时读取计算机硬件信息的代码,以防自己编写的程序被拷贝到别的计算机上运行。谢谢!哪位老师有运行软件时读取计算机硬件信息的代码,以防自己编写的程序被拷贝到别的计算机上运行。谢谢!
搜索更多相关主题的帖子: 计算机硬件 
2012-11-28 20:34
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:3 
2012-11-28 20:46
月沐庭轩
Rank: 9Rank: 9Rank: 9
来 自:京城
等 级:贵宾
威 望:17
帖 子:393
专家分:1106
注 册:2011-7-24
收藏
得分:3 
VFP获取Cpu的DeviceID.使用率.ProcessorId及Name
程序代码:
*--------------------------------------------
oWMI=Getobject("winmgmts://./root/cimv2")
oCpus=oWMI.InstancesOf("Win32_Processor")
For Each oCpu In oCpus
    ?oCpu.DeviceID
    ?oCpu.LoadPercentage,"%"
    ?oCpu.ProcessorId
    ?oCpu.Name
Endfor

下面程序是用来读取硬盘序列号,
通过gethddiskvolumeid("c:")就可以得到硬盘卷序列号。
程序代码:
func gethddiskvolumeid
PARAMETERS cDriver
**声明函数
DECLARE Long GetVolumeInformation In Win32API;
  STRING @lprootpathname,;
  string @lpvolumenamebuffer,;
  long nvolumenamesize,;
  long @lpvolumeserialnumber,;
  long @lpmaximumcomponentlength,;
  long @lpfilesystemflags,;
  string @lpfilesystemnamebuffer,;
  long nfilesystemnamesize
**要读取的驱动器的启始目录
  lcroot=cdriver
**初始化变量
  store 0 to lnserialnl,lncomplen,lnsysflags
  store space(260) to lcvolname,lcsysname
  store len(lcvolname) to lnvolsize,lnnamesize
**读取磁盘信息
  =getvolumeinformation(@lcroot,;
   @lcvolname,;
   @lnseralno,;
   @lncomplen,;
   @lnsysflags,;
   @lcsysname)
   dnumber=alltrim(str(lnserialno))
   return dnumber
endfunc

当然用木瓜的myfll最方便了。
函数名:GetDiskSerial([nDriveIndex])
缩写:GetD
读取指定硬盘的序列号。注意:部分硬盘可能没有序列号。支持Win95、98、Me、NT、2000、XP、2003,支持User权限,支持IDE、SATA、SCSI硬盘及部分移动硬盘。
返回值:
字符串,成功读取返回硬盘序列号,否则返空值。
参数:
[nDriveIndex]:可选。第x个硬盘,可用值为1-X,
默认值为1,即第一块硬盘。如果只有一块硬盘,即可省略此参数。
示例代码
Set Library To myFll

?"第一块硬盘序列号为:"+GetDiskSerial()

?"第二块硬盘序列号为:"+GetDiskSerial(2)

Set Library To

坚持学习vfp,QQ:306805680
2012-11-28 21:43
月沐庭轩
Rank: 9Rank: 9Rank: 9
来 自:京城
等 级:贵宾
威 望:17
帖 子:393
专家分:1106
注 册:2011-7-24
收藏
得分:0 
函数名:GetCpuId()
缩写:GetC
读取CPU的序列号,注意,部分CPU可能无法读取序列号
返回值:
字符型,CPU的序列号
参数:

示例代码
Set Library To myFll

?"你的CPU为:"+GetCpuId()

Set Library To

坚持学习vfp,QQ:306805680
2012-11-28 21:43
zhaozhiwei75
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2012-11-28
收藏
得分:0 
月沐老师,您好!我再请教一下,具体到程序里,我该将你说的这段代码写但我的程序的哪里?我实在是不知道了该如何下手。再次谢谢您老师!
2012-11-28 22:26
zhaozhiwei75
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2012-11-28
收藏
得分:0 
月沐老师,您好!我再请教一下,具体到程序里,我该将你说的这段代码写但我的程序的哪里?我实在是不知道了该如何下手。再次谢谢您老师!
2012-11-28 22:32
月沐庭轩
Rank: 9Rank: 9Rank: 9
来 自:京城
等 级:贵宾
威 望:17
帖 子:393
专家分:1106
注 册:2011-7-24
收藏
得分:0 
回复 5楼 zhaozhiwei75
将机器序列号读取出来后,用一定编码(代码1)转化为机器码,再用一定的编码方式(代码2)得到软件序列号。然后将机器码在软件一定位置表示出来,让别人在你处购买软件序列号。
注意:代码1和代码2,应该是你保密的代码,不能让别人知道的,别人知道你的代码了,或者是通用的代码,你的软件就很容易被破解,你也就得不到卖软件的钱了。
代码1和代码2,你自己去考虑吧,我的也不方便向你公开,在这里给你的代码你使用了,别人很容易破解,所以就不写代码了,只给你思路。
机器码注册,是一种过时的软件注册方式,即使你的代码很严密,也是会被破解的,还有好多软件注册方式,去学一下吧。

坚持学习vfp,QQ:306805680
2012-11-28 22:35
zhaozhiwei75
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2012-11-28
收藏
得分:0 
谢谢老师,我还是不懂啊,我就是想让安装程序在注册表中注册一下,如果单纯拷贝安装目录下的文件到别的计算机上就不能运行,就达到目的了。我的邮箱是nmgcfzw@,月沐老师你如果方便的话能把具体的代码给我吗?
2012-11-29 08:11
月沐庭轩
Rank: 9Rank: 9Rank: 9
来 自:京城
等 级:贵宾
威 望:17
帖 子:393
专家分:1106
注 册:2011-7-24
收藏
得分:0 
回复 8楼 zhaozhiwei75
呵呵,不太方便。你的问题让我为难呀。我已经回答过了,这牵扯到自己的保密问题。

坚持学习vfp,QQ:306805680
2012-11-29 09:13
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:0 
以下是引用月沐庭轩在2012-11-29 09:13:20的发言:

呵呵,不太方便。你的问题让我为难呀。我已经回答过了,这牵扯到自己的保密问题。
改一下关键部分不就行了
2012-11-29 09:53
快速回复:哪位老师有运行软件时读取计算机硬件信息的代码,以防自己编写的程序被 ...
数据加载中...
 
   



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

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