CloseMaxscript 利用内部的硬件绑定接口,自定义激活界面

默认

这是自带的激活提示界面,它的工作只有一个,就是负责将用户填写的激活码写入到文件和注册表

自定义绑定的界面

自定义界面需要,5.86+版本,并配合前置动作完成用户激活码信息的写入

设置如下

下面是自定义硬件绑定前置.ms文件代码,可以作为你修改的参考

--注意本文件只在加密中运行,外部单独运行可能导致结果不准确

--记得改一个特殊的变量名,不然后续被人覆盖则无效
global myToolRt = CodeContainer.MaxScriptRunTime

--当前序列号
global __sn =  myToolRt.C67A9206D43M()

--是否激活
global __isact =  myToolRt.C0XB3D38A78M()

------
try(destroyDialog r_name)catch()

rollout r_name "需要激活才能使用"
(
	label txt1 "序列号" align:#left
	edittext edtSn "" readonly:true
	
	label txt2 "激活码" align:#left
	edittext edtCode "" 
	
	button btnOk "确定" width:100 height:30
	
	label labInfo "这是你的广告"
	
	on r_name open do
	(
		edtSn.text = myToolRt.C67A9206D43M()
	)
	
	on btnOk pressed do
	(
		code = edtCode.text
		err = myToolRt.WriteHardwareBindingLicense __sn code
		if err != "" then
		(
			messageBox ("写入文件出错:" + err)
		)
		else
		(
			messageBox "写入成功,请重启插件后尝试"
		)
	)
)
--判断是否激活来显示窗口

if __isact == false then
(
	createDialog r_name 300 150
)


--必要,让整个表达式返回true
true

最终,你应该获得如下界面显示

一些内置的绑定api

注意,描述中的【当前工具】,是指你最后一次拖入加密的工具
且这些接口只能在运行时【立即】使用,如果想要延迟使用,请使用另一个变量接收CodeContainer,比如 myApi = CodeContainer

获取当前工具的序列号

curSn = CodeContainer.MaxScriptRunTime.C67A9206D43M()

判断当前工具是否激活

isActivated = CodeContainer.MaxScriptRunTime.C0XB3D38A78M()

写入激活码

CodeContainer.MaxScriptRunTime.WriteHardwareBindingLicense <sn> <code>

删除激活码

CodeContainer.MaxScriptRunTime.RemoveAllHardwareBindingLicenses() --删除所有许可证
CodeContainer.MaxScriptRunTime.RemoveCurrentHardwareBindingLicense() --删除上次运行的脚本许可证

许可证保存文件位置:
C:\ProgramData\CloseMaxScript

同时在注册表中也写了一份
计算机\HKEY_CURRENT_USER\Software\CloseMaxScript

posted @ 2023-08-19 17:05  trykle  阅读(114)  评论(0编辑  收藏  举报