TC官方合作论坛

 找回密码
 立即注册
查看: 14768|回复: 33
打印 上一主题 下一主题

[已解决] 大漠免注册的正确源码

  [复制链接]
跳转到指定楼层
楼主
发表于 2014-3-27 23:30:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 itcfan 于 2014-3-28 15:20 编辑

现在学习了解到两种大漠的注册方法:
第一种是:
    ws=com("Wscript.Shell")
    ws.run("regsvr32 atl.dll /s")
    辅助.注册插件("rc:\\dm.dll",真)
非常简单,但360会报警,这会让一些人以为有病毒。

第二种是:
    dllcall("rc:RegDll.dll","int","SetDllPathA","char *","rc:dm.dll","int",0)  
    dm=com("dm.dmsoft")
    版本=3.1233
    如果(dm.Ver()!=版本)
        辅助.消息框("插件注册失败!","注意")
    否则
        辅助.消息框("插件注册成功!","恭喜")
        调试输出(dm.Ver())
    如果结束  
说是免注册,但测试发现,如果“接口查看器”没有注册COM,就不能正常使用?
那在别人的电脑里怎么可能会注册COM?这免注册意义何在?

================================解决方案==================================
  经过hualaosi 朋友的帮助,终于解决了问题所在:
一是免注册DLL的问题,附件上传来了。
二是代码问题,给某些免注册的教程视频误导了,下面给出一份最新正常运行的源码给大家。
  1. 空间 大漠插件注册

  2. 变量 dm

  3. 功能 开始_点击()
  4. 网络时间=dm.GetNetTime()
  5. 辅助.消息框(网络时间)
  6. 调试输出(网络时间)
  7. 功能结束

  8. 功能 初始化()
  9. ws=com("Wscript.Shell")
  10. ws.run("regsvr32 atl.dll /s")
  11. dllcallret=dllcall(辅助.获取资源路径("rc:dmreg.dll"),"int","SetDllPathA","char *",辅助.获取资源路径("rc:dm.dll"),"int",0)
  12. dm=com("dm.dmsoft")
  13. 功能结束

  14. 空间结束
复制代码

最后还是要非常感谢hualaosi 朋友,谢谢!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

评分

参与人数 0威望 +21 金币 +21 收起 理由
fyq2000 + 10 + 10 这才是技术贴
烙之印 + 1 + 1 这个是真行
jrflsh + 10 + 10 赞一个!

查看全部评分

回复

使用道具 举报

沙发
发表于 2014-3-28 07:22:24 | 只看该作者
是你没搞懂
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2014-3-28 08:55:59 | 只看该作者

所以我才问啊~~
回复 支持 反对

使用道具 举报

地板
发表于 2014-3-28 11:48:13 | 只看该作者
本帖最后由 hualaosi 于 2014-3-28 12:18 编辑

不知道我说的对不对,我的理解是:以下的代码
dllcall("rc:RegDll.dll","int","SetDllPathA","char *","rc:dm.dll","int",0)
就是注册插件,不过,不是用脚本直接注册,而是叫windows系统去帮你注册。
脚本发出的系统命令,当然会让流氓杀毒软件360盯上,但是windows发出的系统命令,360再流氓也不敢说不呀。。

比如我说,失联马航被我找到了,大家一定不相信。但如果中国官方发布了新闻发布会说,失联马航已经被网友hualaosi,找到了,并公布了我照的相片,那样大家就相信了,都认识我是英雄了。哈哈。。

总归四个字:曲线救国。
不知道我说的比喻正不正确。

回复 支持 反对

使用道具 举报

5#
 楼主| 发表于 2014-3-28 12:41:08 | 只看该作者
hualaosi 发表于 2014-3-28 11:48
不知道我说的对不对,我的理解是:以下的代码
dllcall("rc:RegDll.dll","int","SetDllPathA","char *","rc: ...

你的意思我明白,我想问的是:
使用:dllcall("rc:RegDll.dll","int","SetDllPathA","char *","rc:dm.dll","int",0)
dm.dll为什么在“接口查看器”没有注册COM,就不能正常使用?
也就是换台电脑,对方没有注册COM,那程序不是运行不正常了?
是我代码不对还是RegDll.dll不支持3.1233版本?
回复 支持 反对

使用道具 举报

6#
发表于 2014-3-28 12:43:53 | 只看该作者
itcfan 发表于 2014-3-28 12:41
你的意思我明白,我想问的是:
使用:dllcall("rc:RegDll.dll","int","SetDllPathA","char *","rc:dm.dll ...

这个问题不存在,我测试过,这种曲线注册方式,在完全没有运行过大漠插件的电脑中,包括win7系统中都能顺利运行。
回复 支持 反对

使用道具 举报

7#
发表于 2014-3-28 12:53:21 | 只看该作者
为防止网上Ghost系统把系统部分功能精简了,你用以下方式注册大漠,一定不会出问题
  1.     ws=com("Wscript.Shell")
  2.     ws.run("regsvr32 atl.dll /s")
  3.     dllcallret=dllcall("rc:dmreg.dll","int","SetDllPathA","char *","rc:dm.dll","int",0)
复制代码

回复 支持 反对

使用道具 举报

8#
 楼主| 发表于 2014-3-28 12:59:49 | 只看该作者

不行啊,会出现这个错误。

注册COM后就一切正常了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

9#
 楼主| 发表于 2014-3-28 13:07:27 | 只看该作者
能否给个完整的源码给我看一下,我自己分析一下那里出问题。

回复 支持 反对

使用道具 举报

10#
 楼主| 发表于 2014-3-28 13:12:26 | 只看该作者
本帖最后由 itcfan 于 2014-3-28 13:14 编辑
  1. 空间 大漠插件注册

  2. 变量 dm

  3. 功能 开始_点击()
  4.     ws=com("Wscript.Shell")
  5.     ws.run("regsvr32 atl.dll /s")
  6.     //dllcallret=dllcall("rc:RegDll.dll","int","SetDllPathA","char *","rc:dm.dll","int",0)
  7.     dm=com("dm.dmsoft")  
  8.     线程.开启("大漠插件注册.自动注册大漠插件","")
  9.     网络时间=dm.GetNetTime()
  10.     调试输出(网络时间)   
  11. 功能结束

  12. 功能 自动注册大漠插件()
  13.     程序DM版本="3.1233"
  14.     是否成功=辅助.是否注册("dm.dmsoft")
  15.     如果(是否成功)
  16.         调试输出("插件已注册")
  17.         dm=com("dm.dmsoft")
  18.         调试输出("插件已注册,当前使用版本:"&dm.Ver())
  19.         如果(程序DM版本!=dm.Ver())
  20.             调试输出("插件已注册,插件版本错误重新注册")
  21.             dllcallret=dllcall("rc:RegDll.dll","int","SetDllPathA","char *","rc:dm.dll","int",0)
  22.             //是否成功=辅助.注册插件("rc:\\dm.dll",真)
  23.             如果(是否成功)
  24.                 dm=null
  25.                 dmm=com("dm.dmsoft")
  26.                 调试输出("插件注册成功,注册版本")
  27.                 辅助.退出()
  28.             如果结束
  29.         如果结束
  30.     否则
  31.         调试输出("插件未注册,开始注册插件")
  32.         dllcallret=dllcall("rc:RegDll.dll","int","SetDllPathA","char *","rc:dm.dll","int",0)
  33.         //是否成功=辅助.注册插件("rc:\\dm.dll",真)
  34.         如果(是否成功)
  35.             调试输出("插件注册成功")
  36.         如果结束
  37.     如果结束
  38. 功能结束

  39. 空间结束
复制代码



这是我的代码,帮我分析一下

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18043773号

GMT+8, 2025-9-21 19:55 , Processed in 0.180663 second(s), 27 queries .

Powered by 海安天坑软件科技有限公司

© 2001-2013 Comsenz Inc.

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