
已解决问题
谷歌crh1224用户在2013.09.09提交了关于“排球少年按键精灵大漠注册失败”的提问,欢迎大家涌跃发表自己的观点。目前共有1个回答,最后更新于2024-11-04T10:00:05。//首先打包dm.dll和RegDll.dll到附件,当然如果你还有其它资源(字库,图片等)也可以一并打包//这个need_ver作为本脚本需要使用的插件版本.如果要换插件时,记得更改这个值.
need_ver="3.1248"
//插件需要用到atl系统库,有些XP精简系统会把atl.dll精简掉.为了防止注册失败,这里手动注册一下atl.dll
setws=createobject("***.Shell")
ws.run"regsvr32atl.dll/s"
setws=nothing
//释放附件>>>>>>>>>>>>>>>>>>>
//这里选择c盘的test-_game作为插件的基本目录也就是SetPath对应的目录。所以所有资源都释放在此目录.
PutAttachment"c:\test_game","*.*"
//这里要用到RegDll来注册插件,所以必须释放到Plugin.但是切记不能把dm.dll释放到Plugin.那会导致插件失效.
PutAttachment".\Plugin","RegDll.dll"
//插件注册开始>>>>>>>>>>>>>>>>>>>
//下面开始注册插件,先尝试用RegDll来注册.这里必须使用绝对路径。以免有别人把dm.dll释放在系统目录.造成版本错误.
CallPlugin.RegDll.Reg("c:\test_game\dm.dll")
//这里判断是否注册成功
setdm=createobject("dm.dmsoft")
ver=dm.Ver()
ifver<>need_verthen
//先释放先前创建的dm
setdm=nothing
//再尝试用regsvr32来注册.这里必须使用绝对路径。以免有别人把dm.dll释放在系统目录.造成版本错误.
setws=createobject("***.Shell")
ws.run"regsvr32c:\test_game\dm.dll/s"
setws=nothing
Delay1500
//再判断插件是否注册成功
setdm=createobject("dm.dmsoft")
ver=dm.Ver()
ifver<>need_verthen
//这时,已经确认插件注册失败了。出一些调试信息,以供分析.
messagebox"插件版本错误,当前使用的版本是:"&ver&",插件所在目录是:"&dm.GetBasePath()
messagebox"请关闭程序,重新打开本程序再尝试"
endscript
endif
endif
//插件注册结束<<<<<<<<<<<<<<<
//这里设置插件基本目录
dm.SetPath"D:\我的文档"
dm_ret=dm.SetDict(0,"123.txt")
//获取句柄
hwnd=dm.GetMousePointWindow()
//绑定
dm_ret=dm.BindWindow(hwnd,"dx","dx","dx",0)
//检测绑定返回值
ifdm_ret=0then
last_error=dm.GetLastError()
//如果是WIN7VISTAWIN2008系统,检测当前系统是否有开启UAC
ifdm.GetOsType()=3ordm.GetOsType()=4then
//有开启UAC的话,尝试关闭
ifdm.CheckUAC()=1then
ifdm.SetUAC(0)=1then
//关闭UAC之后,必须重启系统才可以生效
messagebox"已经关闭系统UAC设置,必须重启系统才可以生效。点击确定重启系统"
dm.ExitOs2
Delay2000
endscript
endif
endif
endif
//具体错误码的含义,可以参考函数GetLastError的说明.
messagebox"绑定失败,错误码是:"&last_error
messagebox"如果确定关闭了UAC,很可能是系统的防火墙拦截插件,请暂时关闭等安全防火墙再尝试"
endscript
endif
//下面就是脚本部分了省略
dm_ret=dm.UseDict(0)
s=dm.Ocr(0,0,2000,2000,"fbae00-875d00",1.0)
MessageBox"s"
//下面这是脚本结束时执行的部分
SubOnScriptExit()
dm.UnBindWindow
setdm=nothing
EndSub
//线程结束时调用
SubOnThreadExit()
dm.UnBindWindow
setdm=nothing
EndSub希望大家能够帮助她。
详细问题描述及疑问://首先打包dm.dll和RegDll.dll到附件,当然如果你还有其它资源(字库,图片等)也可以一并打包
//这个need_ver作为本脚本需要使用的插件版本.如果要换插件时,记得更改这个值.
need_ver="3.1248"
//插件需要用到atl系统库,有些XP精简系统会把atl.dll精简掉.为了防止注册失败,这里手动注册一下atl.dll
setws=createobject("***.Shell")
ws.run"regsvr32atl.dll/s"
setws=nothing
//释放附件>>>>>>>>>>>>>>>>>>>
//这里选择c盘的test-_game作为插件的基本目录也就是SetPath对应的目录。所以所有资源都释放在此目录.
PutAttachment"c:\test_game","*.*"
//这里要用到RegDll来注册插件,所以必须释放到Plugin.但是切记不能把dm.dll释放到Plugin.那会导致插件失效.
PutAttachment".\Plugin","RegDll.dll"
//插件注册开始>>>>>>>>>>>>>>>>>>>
//下面开始注册插件,先尝试用RegDll来注册.这里必须使用绝对路径。以免有别人把dm.dll释放在系统目录.造成版本错误.
CallPlugin.RegDll.Reg("c:\test_game\dm.dll")
//这里判断是否注册成功
setdm=createobject("dm.dmsoft")
ver=dm.Ver()
ifver<>need_verthen
//先释放先前创建的dm
setdm=nothing
//再尝试用regsvr32来注册.这里必须使用绝对路径。以免有别人把dm.dll释放在系统目录.造成版本错误.
setws=createobject("***.Shell")
ws.run"regsvr32c:\test_game\dm.dll/s"
setws=nothing
Delay1500
//再判断插件是否注册成功
setdm=createobject("dm.dmsoft")
ver=dm.Ver()
ifver<>need_verthen
//这时,已经确认插件注册失败了。出一些调试信息,以供分析.
messagebox"插件版本错误,当前使用的版本是:"&ver&",插件所在目录是:"&dm.GetBasePath()
messagebox"请关闭程序,重新打开本程序再尝试"
endscript
endif
endif
//插件注册结束<<<<<<<<<<<<<<<
//这里设置插件基本目录
dm.SetPath"D:\我的文档"
dm_ret=dm.SetDict(0,"123.txt")
//获取句柄
hwnd=dm.GetMousePointWindow()
//绑定
dm_ret=dm.BindWindow(hwnd,"dx","dx","dx",0)
//检测绑定返回值
ifdm_ret=0then
last_error=dm.GetLastError()
//如果是WIN7VISTAWIN2008系统,检测当前系统是否有开启UAC
ifdm.GetOsType()=3ordm.GetOsType()=4then
//有开启UAC的话,尝试关闭
ifdm.CheckUAC()=1then
ifdm.SetUAC(0)=1then
//关闭UAC之后,必须重启系统才可以生效
messagebox"已经关闭系统UAC设置,必须重启系统才可以生效。点击确定重启系统"
dm.ExitOs2
Delay2000
endscript
endif
endif
endif
//具体错误码的含义,可以参考函数GetLastError的说明.
messagebox"绑定失败,错误码是:"&last_error
messagebox"如果确定关闭了UAC,很可能是系统的防火墙拦截插件,请暂时关闭等安全防火墙再尝试"
endscript
endif
//下面就是脚本部分了省略
dm_ret=dm.UseDict(0)
s=dm.Ocr(0,0,2000,2000,"fbae00-875d00",1.0)
MessageBox"s"
//下面这是脚本结束时执行的部分
SubOnScriptExit()
dm.UnBindWindow
setdm=nothing
EndSub
//线程结束时调用
SubOnThreadExit()
dm.UnBindWindow
setdm=nothing
EndSub期待您的答案,感谢你,我会记得你对我的好的
!