TC官方合作论坛

标题: 不注册大漠调用dm.dll的方法 [打印本页]

作者: 187144831    时间: 2012-9-22 20:42
标题: 不注册大漠调用dm.dll的方法
首先解释一下,不注册调用大漠插件,实际上是使用dmreg.dll来配合实现,这个文件有2个导出接口
SetDllPathW和SetDllPathA。 SetDllPathW对应unicode,SetDllPathA对应ascii接口.
参数如下
SetDllPathA  字符串(Ascii码表示插件所在的路径),整数(0表示STA,1表示MTA)
SetDllPathW  字符串(Unicode码表示插件所在的路径),整数(0表示STA,1表示MTA)
那么这2个函数就可以代替以往我们使用的 regsvr32注册方式,或者RegDll注册方式。
下面分别介绍下各个平台的使用方法,需要注意的是,这个dll仅仅给3.1235之后的版本使用,之前的版本无效.
1. 按键平台(按键8及以上)
代码如下
// 如果你把DmReg.dll释放在了plugin目录 比如
PutAttachment ".\plugin","dmreg.dll"
Public Declare Function SetDllPathW Lib "dmreg.dll" Alias "SetDllPathW" (ByVal path As String, ByVal mode As Long) As Long
TracePrint SetDllPathW("c:\3.1235\dm.dll", 0)
// 下面就可以正常创建对象使用插件了
set dm = createobject("dm.dmsoft")
// 如果你把DmReg.dll释放在了别的目录 比如
PutAttachment "c:\test,"dmreg.dll"
Public Declare Function SetDllPathW Lib "c:\test\dmreg.dll" Alias "SetDllPathW" (ByVal path As String, ByVal mode As Long) As Long
TracePrint SetDllPathW("c:\3.1235\dm.dll", 0)
// 下面就可以正常创建对象使用插件了
set dm = createobject("dm.dmsoft")


谁能给我举个例子 在TC里面怎么写

如果TC里面用不了 也说一下  我就不浪费时间琢磨了

  肯定会采纳的









作者: jimye0526    时间: 2012-9-22 21:00
我刚好以我那拙劣的技术弄出来了
你要不 ?
第一使用要相对麻烦一些
第二 我也是根据你的这个dll来的  所以 只能对3.1235版以上的大漠有效,3.1235版以上的大漠是免费的函数是没有了,插件是完全收费了的
作者: 187144831    时间: 2012-9-22 21:03
代码贴上来吧 我忽略了 3.1235了
就当学习了

作者: jimye0526    时间: 2012-9-22 21:13
回复 3楼187144831的帖子

就是重新拿vb封装下就好了么 搞成tc能调用的dll

vb里的源码
Private Declare Function SetDllPathA Lib "DmReg.dll" (ByVal path As String, ByVal mode As Long) As Long

Function SetDllPathA_(ByVal path_ As String, ByVal mode_ As Long) As Long

     SetDllPathA_ = SetDllPathA(path_, mode_)

End Function
作者: 187144831    时间: 2012-9-22 21:14
能转成TC给我看吗?  按键多少能看懂些  VB完全不懂啊
作者: jimye0526    时间: 2012-9-22 21:15
回复 5楼187144831的帖子

这没办法 就是vb重新封装下 生成一个新dll 然后再tc里调用
作者: zdy77233647    时间: 2012-9-22 21:48
其实就在初始化加个辅助注册插件和辅助是否注册就可以搞定的事,感觉你们弄麻烦了
作者: 187144831    时间: 2012-9-22 23:05
回复 7楼zdy77233647的帖子

你看看帖子标题
作者: zdy77233647    时间: 2012-9-23 02:46
回复 8楼187144831的帖子

我看到了,TC 封装大漠!直接在初始化自动注册就行了
作者: jimye0526    时间: 2012-9-23 07:42
回复 9楼zdy77233647的帖子

人家要的是免注册,这样可以防部分检测注册表,判断是否注册了大漠的,游戏。
作者: 120801625    时间: 2012-9-23 13:55
就当学习了
作者: 187144831    时间: 2012-9-24 19:59
回复 6楼jimye0526的帖子

我发现有人用3.1233就能调用  而不是3.1235
怎么回事?
作者: jimye0526    时间: 2012-9-24 21:16
回复 12楼187144831的帖子

这是人家自己搞的,具体原理我也不知道
而我是根据大漠作者写的dll封装成tc能用的dll
大漠作者限制了3.1235版以下不能用 我也没办法
作者: feng123144    时间: 2012-10-13 16:46
唉,会多门技术就是不一样.
作者: yyyyjx    时间: 2013-8-10 23:47
我也在找方法,求教育
作者: hjl123456    时间: 2016-12-6 08:22
学习
作者: 剑仙十号    时间: 2016-12-6 12:58
tc简单开发。大漠3.1233免注册。
//exempt adj,免除的。 register n.注册,登记。
//EptReg 理解为免注册。
变量 线程ID
功能 执行()
变量 ws = 插件("Wscript.Shell")
ws.run("regsvr32 atl.dll /s")
var path = 获取资源路径("rc:")
var ret = 动态库调用(path & "EptReg.dll", "int", "SetDllPathA", "char *", path & "dm.dll", "int", 0)
var dm = 插件("dm.dmsoft")
var ver = dm.Ver()
traceprint("大漠的版本号:" & ver)
dm.SetPath(path)
dm.Moveto(0, 0)
sleep(30)
dm.RightClick()
sleep(30)
结束
功能 启动_热键()
线程ID = 线程开启("执行", "")
结束
功能 终止_热键()
线程关闭(线程ID)
结束
.
.
插件下载:433286131。
群共享。剑仙教程。




欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/) Powered by Discuz! X3.1