
2、打开“MagiCAD”文件夹下的“Tools”文件夹,双击其中的“License Management Utility”程序(图2),打开“授圆闷燃权码罩告管理”程序。
3、确保机器处于连接外网状态,测试方式:单击“授权管理器”右下角的【选项】功能,在d出的“选项”对话框中选择【测试网络连接】命令。
4、稍等一段时间后,如果网络连接正常,则前两项内容会显示“连接正确”,此时点击右下角【Close】关闭“连接测试”对话框回到“选项”界面,点击右下角【保存】退出“选项”界面。
注意:当此处未显示“连接正确”时不可进行授权,需要改变连接方式(比如手机共享热点,或共享USB热点连接)。
5、回到授权管理器界面后,单击右上角的【添加激活码】按钮,在d出的“添加激活码”界面中,将Html文件内或邮件接收到的“Act-”开头的长段字符完整复制粘贴到“激活码”输入框中,点击右下角【添加】命令。
6、经过一段时间加载后(加载时间根据电脑配置及网络环境不同略有差异,过程中不要进行其他 *** 作,尤其不要终止任何程序),授权码加入到橘虚“授权管理器”的列表中,“结果”列出现“可激活的”显示,同时“过期实现”会有相应时间显示,如果是使用码显示的是结束试用的时间,如果是正式码则显示“永久授权”。
7、点击需要激活的授权码,再点击左下角【激活】命令,
8、软件执行激活过程,此时同样不要进行其他任何,同时不要关闭任何进程。
9、完成后“结果”列显示的项目为“已经在本机激活”,此时即为激活成功,打开Revit后即可正常加载MagiCAD相关模块并使用功能。
对2011及之前的版本Inventor,这个是没有官方的解决办法的,您只能找到三个版本对应的dll文件然后进行覆盖。如果版本不匹配,或覆盖原始的dll文件后,您有答皮虚打了后续的补丁,那之前的License类型就前功尽弃了。这对于很多渠道和Inventor的试用者是非常不爽的。\x0d\x0a\x0d\x0a对于Inventor2012,这个问题从开发角度得到了彻底的解决,具体解决办法如下:\x0d\x0a\x0d\x0a在运行中输入regedit,进入注册表编辑器中。\x0d\x0a\x0d\x0aLicenseMode=0x00000001(1),表明是网络版授权\x0d\x0a\x0d\x0aLicenseMode=0x00000002(2),表明是单机版授权\x0d\x0a\x0d\x0aLicenseMode=0x00000003(3),表明是多席位单机版授权\x0d\x0a\x0d\x0a这个仅仅是在Inventor2012里可以通过注册表键值修改,改变License的授权方式。\x0d\x0a\x0d\x0a如果您是AIP的用户,那您可能已经熟悉了AutoCAD及其垂直产品(即AutoCADMechanical,AutoCADElectrical等二维产品)的授权改变方式。\x0d\x0a\x0d\x0a对于AutoCAD2000i,2002注册表的键值是:\x0d\x0a\x0d\x0aHKEY_LOCAL_MACHINE\SOFTWARE\Autodesk\AutoCAD\R15.0\ACAD-1:411\AdLM\Type\x0d\x0a\x0d\x0a键值为2a,表明是单机授权,键值11,表明是网络授权\x0d\x0a\x0d\x0a对于清燃AutoCAD2004,~2009,\x0d\x0a\x0d\x0aHKEY_LOCAL_MACHINE\SOFTWARE\Autodesk\AutoCAD\R15.0\ACAD-1:411\AdLM\Type\x0d\x0a\x0d\x0a键值为2a,表明是单机授权,键值19,表明是网络授权\x0d\x0a\x0d\x0aAutoCAD2010时,这个转换功能被取消\x0d\x0a\x0d\x0aAutoCAD2011至2012,这个功能又回来了。\x0d\x0a\x0d\握姿x0aHKEY_LOCAL_MACHINE\SOFTWARE\Autodesk\AutoCAD\R18.1\ACAD-9001:409\AdLM\Type\x0d\x0a\x0d\x0aType的值如下:\x0d\x0a\x0d\x0a1=网络授权\x0d\x0a\x0d\x0a2=单机授权\x0d\x0a\x0d\x0a3=多席位单机授权第一步:生成一组公钥和私钥,公钥用于你发布程序,私钥属于注册码生成。view plaincopy to clipboardprint?using(RSACryptoServiceProvider rsa = new RSACryptoServiceProvider())
{
// 公钥
string pubkey = rsa.ToXmlString(false)
// 私钥
string prikey = rsa.ToXmlString(true)
//如果是webForm就Response.Write(pubkey + ”<br/>”高银 + prikey)下
//如果是winForm就MessageBox.Show("公钥:" + pubkey + "\r\n私钥:" + prikey)下
}
using(RSACryptoServiceProvider rsa = new RSACryptoServiceProvider())
{
// 公钥
string pubkey = rsa.ToXmlString(false)
// 私钥
string prikey = rsa.ToXmlString(true)
//如果是webForm就Response.Write(pubkey + ”<br/>” + prikey)下
//如果是winForm就MessageBox.Show("公钥:" + pubkey + "\r\n私钥:" + prikey)下
}第二步:取得机器硬件编码。我选用CUP的编号。view plaincopy to clipboardprint?
/// <summary>
/// 获取CPU编号
/// </summary>
/// <returns></returns>
public string GetCpuId()
{
ManagementClass mc = new ManagementClass("Win32_Processor")
ManagementObjectCollection moc = mc.GetInstances()
String strCpuID = null
foreach (ManagementObject mo in moc)
{
strCpuID = mo.Properties["ProcessorId"].Value.ToString()
break
}
return strCpuID
}
/// <summary>
/// 获取CPU编号
/// </summary>
/// <returns></returns>
public string GetCpuId()
{
ManagementClass mc = new ManagementClass("Win32_Processor"枝悉)
ManagementObjectCollection moc = mc.GetInstances()
String strCpuID = null
foreach (ManagementObject mo in moc)
{
strCpuID = mo.Properties["ProcessorId"].Value.ToString()
break
}
return strCpuID
}第三步:编写注册码生成猛念乎WinForm程序,使用CUP的编号来生成注册码,当然你也可以用 WebForm来写。view plaincopy to clipboardprint?
using(RSACryptoServiceProvider rsa = new RSACryptoServiceProvider())
{
rsa.FromXmlString(“私钥”)
// 加密对象
RSAPKCS1SignatureFormatter f = new RSAPKCS1SignatureFormatter(rsa)
f.SetHashAlgorithm("SHA1")
byte[] source = System.Text.ASCIIEncoding.ASCII.GetBytes(“CUP的编号”)
SHA1Managed sha = new SHA1Managed()
byte[] result = sha.ComputeHash(source)
byte[] b = f.CreateSignature(result)
msg.Text = Convert.ToBase64String(b)//这里就得到了string形式的注册码
//再接下来你可以把生成的注册码保存成license.lic文件,license.lic文件也没什么特别的格式就是相当于把注册吗保存到一个txt文件中,无非这个txt文件的后缀改成了lic,你要高兴也可保存成其它多种格式。
//也可以保存在注册表中或是web.config中,总之能让你的发布的应用程序能读的到就行。
}
using(RSACryptoServiceProvider rsa = new RSACryptoServiceProvider())
{
rsa.FromXmlString(“私钥”)
// 加密对象
RSAPKCS1SignatureFormatter f = new RSAPKCS1SignatureFormatter(rsa)
f.SetHashAlgorithm("SHA1")
byte[] source = System.Text.ASCIIEncoding.ASCII.GetBytes(“CUP的编号”)
SHA1Managed sha = new SHA1Managed()
byte[] result = sha.ComputeHash(source)
byte[] b = f.CreateSignature(result)
msg.Text = Convert.ToBase64String(b)//这里就得到了string形式的注册码
//再接下来你可以把生成的注册码保存成license.lic文件,license.lic文件也没什么特别的格式就是相当于把注册吗保存到一个txt文件中,无非这个txt文件的后缀改成了lic,你要高兴也可保存成其它多种格式。
//也可以保存在注册表中或是web.config中,总之能让你的发布的应用程序能读的到就行。
}第四步:在发布的程序相关地方添加对注册码有效性的验证。如添加在程序启动的时候,程序执行特定 *** 作的时候等等,总之看你的需要做有效性的验证。view plaincopy to clipboardprint?
//相关注册码获取代码……
//以下代码是发布程序使用公钥对注册码进行验证
using(RSACryptoServiceProvider rsa = new RSACryptoServiceProvider())
{
rsa.FromXmlString(“公钥”)
RSAPKCS1SignatureDeformatter f = new RSAPKCS1SignatureDeformatter(rsa)
f.SetHashAlgorithm("SHA1")
byte[] key = Convert.FromBase64String(“注册码”)
SHA1Managed sha = new SHA1Managed()
byte[] name = sha.ComputeHash(ASCIIEncoding.ASCII.GetBytes(“注册码”))
if(f.VerifySignature(name,key))
msg.Text = "验证成功"//可以return true等方式返回相应的状态
else
msg.Text = "不成功"
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)