大漠插件里的说明 (包含,注册,字库设置,附件释放) 
这里只以按键8作为例子,其它语言都类似。 
// 首先打包dm.dll和RegDll.dll到附件,当然如果你还有其它资源(字库,图片等)也可以一并打包 
// 这个need_ver作为本脚本需要使用的插件版本. 如果要换插件时,记得更改这个值. 
 
need_ver = "3.1210B" 
 
  
 
// 释放附件>>>>>>>>>>>>>>>>>>> 
 
// 这里选择c盘的test_game作为插件的基本目录 也就是SetPath对应的目录。所以所有资源都释放在此目录. 
 
PutAttachment "c:\test_game","*.*" 
 
// 这里要用到RegDll来注册插件,所以必须释放到Plugin. 但是切记不能把dm.dll释放到Plugin.那会导致插件失效. 
 
PutAttachment ".\Plugin" ,"RegDll.dll" 
 
  
 
// 插件注册开始>>>>>>>>>>>>>>>>>>> 
 
// 下面开始注册插件,先尝试用RegDll来注册.这里必须使用绝对路径。以免有别人把dm.dll释放在系统目录.造成版本错误. 
 
Call Plugin.RegDll.Reg("c:\test_game\dm.dll")  
 
  
 
// 这里判断是否注册成功 
 
set dm = createobject("dm.dmsoft") 
 
ver = dm.Ver() 
 
if ver <> need_ver then 
 
// 先释放先前创建的dm 
 
set dm = nothing 
 
   // 再尝试用regsvr32 来注册. 这里必须使用绝对路径。以免有别人把dm.dll释放在系统目录.造成版本错误. 
 
set ws=createobject("Wscript.Shell") 
ws.run "regsvr32 c:\test_game\dm.dll /s" 
set ws=nothing 
Delay 1500   
 
  
 
// 再判断插件是否注册成功 
 
set dm = createobject("dm.dmsoft") 
 
ver = dm.Ver() 
 
if ver <> need_ver then 
 
// 这时,已经确认插件注册失败了。 弹出一些调试信息,以供分析. 
 
messagebox "插件版本错误,当前使用的版本是:"&ver&",插件所在目录是:"&dm.GetBasePath() 
 
messagebox "请关闭程序,重新打开本程序再尝试" 
 
    endscript 
 
  end if 
 
end if 
 
// 插件注册结束<<<<<<<<<<<<<<< 
 
  
 
// 收费注册开始,简单游作者不需要这一段(加了也没关系,不会扣费),非简单游平台付费作者必须添加>>>>>>>>>>>>>>> 
 
// 当然,如果是在按键精灵上使用,这段代码是可以注释掉。大部分功能可以直接在按键平台使用。无须注册. 
 
// ok,这里已经确认插件注册成功,并且创建了对象,下面开始注册收费服务 
 
dm_ret = dm.RegEx("abcdefg","0001") // abcdefg是您的注册码. 在大漠插件网站后台可以直接获取. 
 
if dm_ret <> 1 then 
 
   messagebox "注册失败,返回值是:"&dm_ret 
 
   endscript 
 
end if 
 
// 收费注册结束<<<<<<<<<<<<<<<< 
 
  
 
//这里设置插件基本目录 
 
dm.SetPath "c:\test_game" 
 
  
 
// 获取句柄 
 
hwnd = dm.GetMousePointWindow() 
 
  
 
// 绑定 
 
dm_ret = dm.BindWindow(hwnd,"dx","dx","dx",0) 
 
  
 
// 检测绑定返回值 
 
if dm_ret = 0 then 
 
   last_error = dm.GetLastError() 
 
// 如果是WIN7 VISTA WIN2008系统,检测当前系统是否有开启UAC 
   if dm.GetOsType() = 3 then 
 
    // 有开启UAC的话,尝试关闭 
 
if dm.CheckUAC() = 1 then 
 
     if dm.SetUAC(0) = 1 then 
 
          // 关闭UAC之后,必须重启系统才可以生效 
 
          messagebox "已经关闭系统UAC设置,必须重启系统才可以生效。点击确定重启系统" 
 
         dm.ExitOs 2 
                 Delay 2000 
 
         endscript 
 
     end if 
 
end if 
   end if 
 
   // 具体错误码的含义,可以参考函数GetLastError的说明. 
 
   messagebox "绑定失败,错误码是:"&last_error 
   messagebox "如果确定关闭了UAC,很可能是系统的防火墙拦截插件,请暂时关闭360等安全防火墙再尝试" 
 
   endscript 
 
end if 
 
  
 
  
 
// 下面就是脚本部分了 省略 
 
  
 
  
 
// 下面这是脚本结束时执行的部分 
 
Sub OnScriptExit() 
 
   dm.UnBindWindow 
 
End Sub 
 
  
 
// 结束 
 
  
 
另外特别要注意,不要把dm.dll释放到Plugin目录,那样会导致插件在 
更新版本时出现注册失败的情况。特别是在简单游平台.建议释放到C盘的 
某个目录比如Test目录等. 
 
  
 
另外,别的高级语言如何调用dm.dll,请百度XXXX语言如何调用Active X 对象.  
 
目前经过测试的语言可以正常调用的有vc6 vb6 delphi 易,别的语言想必也不会有问题. 
 
  
 
从2.1118B版本之后,大漠插件将禁止释放到Plugin目录,以避免一系列升级产生的BUG! 
同时,也禁止用Plugin方式来调用插件,那个方式也是非常不安全的. 
请大家严格按照vbs的语法来使用插件. 
 
  
 
如果是多线程使用大漠插件,必须每个线程都要创建一个dm对象. 
 
注册过程脚本开始时,执行一次就行了,没必要每个线程都执行. |