首先说明下大漠综合工具制作字库的过程和原理
1.截取你所需要的图片
2.点击你所需要字的颜
3.点击提取点阵
4.如何制作网页插件输入字符 按回车生成字库
具体的原理我不好说,但是就我的理解是:对图片中不符合指定颜的部分去除掉,然后二值化获取点阵,点阵也就是这些颜的分布规律,二值化就是黑白两,RGB格式中黑"000000""ffffff"
由于我的脚本在别人电脑上运行的时候经常失效,今天改成16位后我机器上运行也失效了,而我这个脚本主要采用的就是大漠插件的字功能,我以为是机器间的偏造成的,一直想法子算偏,但是我失败了。
后来我想起论坛上有个帖子专门讲过同系的RGB格式中R值是不变的(不好意思忘了作者了,在这里致谢)
于是我就在大漠综合工具的偏处输入了00ffff结果是在16位环境下,大漠综合工具中二值化区域内的字显示的跟我在32位环境下做的一模一样,接着我提取点阵,制作字库,进行调
试,命令格式如下:
dm_ret =dm.FindStr(0,0,978,585, "", "ffd463-00ffff", 1.0, x1, y1)
If x1 >= 0 Then 
    MessageBox x1 & y1
End If
准确的弹出了x,y的坐标值
接着我换32位做同样的调试,显示结果与16位下相同,我测了坐标正好是我要的字的左上角
经多次测试发现这个方法中字的R值必须为FF00(至于F1,01等未测试,有兴趣的朋友可以试试)
庆幸啊以后字可以不考虑偏了 呵呵 再说了考虑我也不会算
具体原理我也不是很懂,但是我估计应该是:我比较了点阵中R值相同的所有点,取得符合二值化点阵区域内所有的点造成的
再次提醒 此方法只适合R值为00FF 其他位置相同的未测试
当然这么做效率是低了点,但是在我看来脚本应该是:稳定性>通用性>执行效率,毕竟脚本
也是你编写的一种软件吗
鲜花,银币在哪 拿来啊 呵呵
简单说下后台操作的方法,先判断该窗口是否支持后台,用下面的语句:
Hwnd=Plugin.Window.Foreground()
Hwmd=Plugin.Window.GetkeyFocusWnd()
If Hwmd<>0 then
Messagebox "可以"
Else
Messagebox "不可以"
End if
然后把下面的放在脚本开头
Hwnd=Plugin.Window.Foreground()
Hwnd=Plugin.Window.GetkeyFocusWnd()
//下面接自己的代码
首先后台一点是要有句柄、这个很简单

第一步我们先打开抓抓,接着点击句柄 接着把鼠标移到你所要后台的窗口上,按下F8 是否看见当前窗口句柄那里出现一串数字? 把它复制下来

第二步我们点击图像,在指定窗口句柄那里打钩 接着把数字复制进去 按下抓图键(Print Screen SysRq) 是否只看见你要后台的的图像呢? 对着你所需要的坐标按右键加入点1 记住坐标 然后加入到后台鼠标点击里面就行了

第三步我们在后台命令中到鼠标指向窗口点击插入 命令是Hwnd = Plugin.Window.MousePoint()

第四步我们要进行后台鼠标点击或者后台输入键盘 命令是Call Plugin.Bkgnd.LeftClick(Hwnd, 0, 0)
在按键看了很多教程关于"多开..."的我看了后回味,似乎都是单线程的,往往新手会问,难道不能
让精灵同事做2件事情吗?新手问的其实是问:按键可以多线程后台吗?由此我突然奇想且试验成功.且次试验可将任何的单开后台变为多开后台脚本.如有愚昧的地方指指教了
作业:
设计一个在记事本上后台打字"1"的循环代码
要求:能循环多开
Hwnd = Plugin.Window.MousePoint()
rem a
Call Plugin.Bkgnd.KeyPress(Hwnd, 49)
Delay 500
goto a

:8.0写的 如只有7的同学 自己翻译 不太难的
回复后能见教程
本帖隐藏的内容需要回复才可以浏览
第一步:将禁止脚本重复运行 选为否(在是否循环的下面)

第二步:设置启动热键为F2(以免与记事本热键冲突)

第三步:保存退出(或选调试)

第四步:打开第一个记事本文件,鼠标指中按F2,此时可看见 后台打的111出现 最小化

第五步:打开第二个记事本文件,鼠标指中按F2,此时可看见 后台打的111出现 最小化

........
此时你如果将多个记事本都打开 他们都在干活呢-------可以无限后台多开-多线程的哦
总结:第一步很关键.
启示:如果我做的"1"的脚本换成打怪的呢?
本帖隐藏的内容需要回复才可以浏览
1步:什么是后台插件及命令
首先我们要明白什么是后台插件以及后台命令,在编辑窗口到全部命令,到窗口插件(建议大家可以站内搜一下361插件,下载后放进去,看一下361插件的命令),点开后点击每一条命令仔细看说明,对比每条命令跟前台命令的对应关系,这样我们就可以把对应的前台命令转换为后台命令了。
2步:窗口句柄的概念以及如何出窗口句柄
操作系统种每打开一个窗口就会相应的为这个窗口做一个记号,他是用一串数字表示,也就是我们所要的窗口句柄了(新手的理解方式不知道准确不^-^,这个东西对我们后台操作来说是最重要的,你在查看插件命令的时候都会看到,我们每个命令后面跟的参数里面都有个hwnd,他其实就是窗口句柄变量。怎么样理解窗口句柄其实很简单吧
3步:窗口坐标(可以理解为后台坐标)
窗口坐标是指游戏窗口里面的坐标,如果我们把屏幕坐标比作绝对坐标,那么窗口坐标就是个相对坐标了,我们平时用抓抓出的坐标就是屏幕坐标,所以他是不能直接在后台用的。其实不用对窗口坐标很烦恼,如果你下载了361插件,有个很简单的方法可以直接出窗口
坐标。
Plugin hw=Window.MousePoint()
Plugin text=Window.GetText(hw)
Plugin class1=Window.GetClass(hw)
VBSCall GetCursorPos(x,y)
Plugin win=BGKM5.ScrToCli(hw,x,y)
MessageBox "窗口句柄:"&CStr(hw)&VbCrLf&"窗口名:"&text&VbCrLf&"类名:"&class1&VbCrLf&"鼠标所在位置的窗口坐标:"&win
这段代码是从361插件哪里抄来的^-^如果不理解的话你在下载361插件的时候应该那里能看到说明
把这段做成脚本你就可以很方便的到你需要的点的窗口坐标,省去了在脚本中加入窗口坐标转换的麻烦。
4步:定义窗口句柄变量
这步是你是否成功的关键,窗口插件里面可以看到很多定义窗口变量的命令(这个是361里面没有的,在窗口插件里面吧),我个人喜欢用的是这条:Plugin hw=Window.MousePoi
nt()
大致意思是出当前鼠标说在窗口的窗口句柄(hw是自己定义的变量,你可以更改它,一般多数地方是hwnd,你可以用你自己喜欢的方式定义)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。