初识按键精灵

  最近一个朋友在拍沪牌,多次不中,于是到网上买了一个软件,号称可以很大程度的提高中标率,果然用了之后,两次就中。然后。。。,他就走上了代拍这条不归路。。。还让我帮他去输验证码。看后发现,其实那个软件完全就是按键精灵制作,难度肯定不大。于是有了我也来仿做一个的想法(因为久闻按键精灵的方便,但从未使用过)。

  首先,其主要功能为:

    1、定时出价

    2、识别当前的最低可成交价,从而来确定点击出价的时间

    3、放大验证码

  第一步,也是最烦锁的一步,就是找各个需要点击的点的从标位置,因为是在浏览器中,所以我们记录下的相对于浏览器里的位置放在 .ini文件中

  配置文件格式以这种形式:

    [小节名]

       #后面跟注释

       变量名 = 值

[default]
#系统参数
#位置坐标文件版本和更新时间
Base_Pos_X =8
Base_Pos_Y =55

   代码中读取

//基准坐标
Base_Pos_X = Plugin.File.ReadINI("default", "Base_Pos_X", "cc.ini") + 0
Base_Pos_Y = Plugin.File.ReadINI("default", "Base_Pos_Y", "cc.ini") + 0

  第二步,需要打IE,输入指定网扯,再调整IE的大小和位置,因为这样才能使网页中按钮在屏幕的指定位置(按键精灵使用的是屏幕坐标),这里我使用的是361度窗口插件,这个地方用系统方法也可以达到同样的效果,我是因为后面用到,所以一并用这个插件了。

这里先做了检测IE是否已经打开,已经打开就跳过了这一步

HwndEx = Plugin.Window.Search(IE_Search_String)
Hwnd = 0
MyArray = Split(HwndEx, "|")
If UBound(MyArray) >= 0 Then
	Hwnd = Clng(MyArray(0))
End If

If Hwnd <> 0 Then
	MessageBox("检测到IE已经打开")
Else
	RunApp (IE_EXE_Path&" "& Bid_Path)
	Delay 1000
	HwndEx = Plugin.Window.Search(IE_Search_String)
	MyArray = Split(HwndEx, "|")
	If UBound(MyArray) >= 0 Then
		Hwnd = Clng(MyArray(0))
	End If
End If

Call Plugin.WndEx7_20.SetWindowStyle(Hwnd,6)

//Call Plugin.Window.Move(Hwnd, 0, 0)
Call Plugin.WndEx7_20.MoveWindow(Hwnd, 0, 0)

//Call Plugin.Window.SetClientSize(Hwnd, IE_Width, IE_Height)
Call Plugin.WndEx7_20.SetWindowSize(Hwnd, IE_Width, IE_Height)

//Call Plugin.Window.Top(Hwnd, 1)
Call Plugin.WndEx7_20.SetWindowZOrder(Hwnd,0)

  第三步,这里还需要显示很多提示信息到窗口上,可以继续用361度插件的函数,这里我用的是大漠插件

  1、注册大漠,这里我用的 regsvr32 用注册,要不然总是不成功,我看别人不用这一句也可以,不知道为什么(?)

//注册大漠
Sub register()
  temp_path = Plugin.sys.GetDir(3)
  PutAttachment temp_path,"dm.dll"
    Set ws = createobject("Wscript.Shell")
    ws.run "regsvr32 atl.dll /s"
    ws.run "regsvr32 dm.dll /s"
    Delay 1000
    Set ws = nothing
    call Plugin.RegDll.Reg (temp_path&"dm.dll")
    Set dm = createobject("dm.dmsoft")
    ver = dm.ver()
    If len(ver) = 0 Then
        MessageBox "插件注册失败,检查系统是否禁用了vbs脚本权限"
        EndScript
    End If
End Sub

2、绘制提示窗口到指定位置

//画提示窗口///////
foobar_hotkey_tip = dm.CreateFoobarRoundRect(0, tip_top_X, tip_top_Y, tip_width, tip_height, 10, 10)‘画圆角窗口
dm_ret = dm.FoobarSetFont(foobar_hotkey_tip,"宋体",12,1)‘设置文本字体大小,加粗
dm_ret = dm.FoobarFillRect(foobar_hotkey_tip, 0, 0, 800, 400, "67599d")‘设置矩形条颜色

dm_ret = dm.FoobarDrawText(foobar_hotkey_tip, 10,10,tip_width-20,tip_height-20, "助手版本V 1.0.0", "FFFFFF", 1)
dm_ret = dm.FoobarUpdate(foobar_hotkey_tip)‘刷新

3、更新配置文件 , 一般这种坐标信息,可能会经常需要变动,因为每次启动程序后需要更新。这里更新时,主要遇到了编码问题,使用官方接口更改编码并没有什么卵用。于是我修改一下

//下载文件
Sub downloadFile(url, savePath)
    //说明:支持远程获取文本内容,如:MsgBox lib.网络.获得网页源文件("http://www.anjian.com/test.txt")
    //例子:MsgBox lib.网络.获得网页源文件("http://www.anjian.com")
    Dim xmlUrl
    Dim ThisCharCode ,NextCharCode ,BytesToBstr
    If InStr(url, "http://") = 0 Then
        xmlUrl = "http://" & url
    Else
        xmlUrl = url
    End If
    Dim xmlHttp
    Set xmlHttp = CreateObject("Microsoft.XMLHTTP")
    xmlHttp.Open "Get", xmlUrl, False
    xmlHttp.Send
    xmlBody = xmlHttp.ResponseBody
    Set xmlHttp = Nothing
    Set ObjStream = CreateObject("Adodb.Stream")
    With ObjStream
        .Type = 1
        .Mode = 3
        .Open
        .Write xmlBody
        .Position = 0
        .Type = 2
        .Charset = "GB2312"
        BytesToBstr = .ReadText
        .Close
    End With
    Set ObjStream = Nothing
    result = BytesToBstr

    If len(result) > 0 Then
    	If Plugin.File.IsFileExist(savePath) Then
    		Plugin.File.DeleteFile(savePath)
    	End If
    	ret = Plugin.File.WriteFileEx(savePath , result)
		ret = Plugin.WndEx7_20.MsgBoxEx(Plugin.Window.Foreground() ,"更新配置文件成功!","更新",1,3000,4096)
	Else
		ret = Plugin.WndEx7_20.MsgBoxEx(Plugin.Window.Foreground() ,"更新配置文件失败!","更新",1,3000,4096)
	End If
  //  MessageBox result
    downloadFile = result
End Sub

这样前面准备算是完成了,启动窗口,位置和大小都固定好了。

  后面可以新建一个脚本,按下快捷键启动后,进行时间判断,到时间后,将相应的鼠标操作,比较简单,就不再罗列了。

  

  然后就是一个放大验证码功能,我也是找了很久才找到这个方法,使用了361度插件

  我这里做的是,先找到是否有一个取消按钮,只有在验证码弹出窗口才会有取消按钮。

  Plugin.WndEx7_20.SetPictureRgnImage 通过这个函数的适配窗口大小来放大验证码。

verify_foobar = 0
Sub scaleImg()//放大验证码
	FindPic IE_Width/2,IE_Height/2,IE_Width,IE_Height,"plugin/Cancel.bmp",0.8,intX,intY
	If intX > 0 And intY > 0 Then //找到取消按钮则出验证码
		dm_ret = dm.Capture(Cap_Code_TopLeft_X, Cap_Code_TopLeft_Y, Cap_Code_RightBottom_X, Cap_Code_RightBottom_Y, "Log/verify_code.bmp")
		//画验证码窗口///////
		ver_width = Cap_Code_RightBottom_X - Cap_Code_TopLeft_X
		ver_height = Cap_Code_RightBottom_Y - Cap_Code_TopLeft_Y
		If verify_foobar = 0 Then
			//verify_foobar = dm.CreateFoobarRect(0, 200, nScrHeight - 200, ver_width*2, ver_height*2)‘画圆角窗口
			verify_foobar = Plugin.WndEx7_20.CreatePictureRgn(0, Verify_Scale_Pos_X, nScrHeight + Verify_Scale_Pos_Y, ver_width*Verify_Scale, ver_height*Verify_Scale)
			Call Plugin.WndEx7_20.SetPictureRgnStyle(verify_foobar,1)
		End If
		Call Plugin.WndEx7_20.SetPictureRgnImage(verify_foobar,"Log/verify_code.bmp")
		Call Plugin.WndEx7_20.SetWindowZOrder(verify_foobar,0)
	Else
		If verify_foobar <> 0 Then
			Call Plugin.WndEx7_20.SetWindowState(verify_foobar,0)
			verify_foobar = 0
		End If

	End If

End Sub

识别我就做的比较随意了,都是用的人家现成的字库,现成长配置

调用大漠的 dm.Ocr() 这个函数

然后就基本上完成了那个软件的主要功能了

  一次使用按键,发现其真心的方便,写个辅助什么的,基本上可以很快完成。虽然我主要用的是源码模式,他的普通模式,那种接近口语编程方式还也是我第一次接触到,挺牛X的

时间: 2024-09-28 03:27:09

初识按键精灵的相关文章

蓝丝雨零基础学习按键精灵VIP教程合集

课程目录:1.初识按键精灵2.标识符和关键字3.变量4.变量的作用域5.常量6.数据类型7.强制转换类型8.运算符与表达式19.运算符与表达式210.运算符优先级11.键盘命令12.鼠标移动13.鼠标单击14.获取鼠标位置15.得到鼠标特征码16.如果命令17.如果否则语句18.颜色判断语句19.条件选择语句20.For循环语句21.DoLoop循环语句22.WhileWend循环语句23.跳转语句和中断命令24.子程序25.参数的真正意义与使用技巧26.函数27.数组28.随机数29.冒泡算法

按键精灵出故障,无法正常充值

故障现象; 公司按键精灵,无法正常充值,浏览器无法显示支付宝页面样式,报不是安全的连接 处理过程 1,暂停按键精灵,将谷歌浏览器清理缓存 2,清理后浏览器直接无法正常显示页面样式,无法加载图片等 3,将浏览器重置默认,依然无法显示 4,卸载现有谷歌浏览器,但保留原有数据,重装后依然 5,怀疑是支付宝安全插件的问题,后百度查看相关文摘,说的是支付宝证书无法加载和密码无法输入的问题,安装了支付宝安全插件后依然这样 6,查资料无果的情况下,卸载现有谷歌浏览器并将其数据全部删除,下载谷歌55版浏览器安装

一个按键精灵后台发送消息的脚本

以前,我也用过按键精灵写过一些脚本,那时候经常用这个来挂机FB什么的. 那天,某网友问起,于是就回答了下 无非就是,抓句柄,然后相对定位坐标或者发送消息到固定窗体 代码如下: 1 //////////////////////////抓窗口句柄////////////////////////////////////////// 2 3 Dim Hwnd 4 5 Hwnd = Plugin.Window.MousePoint() 6 7 sWindow = Plugin.Window.IsWindo

仙境传说-按键精灵脚步研究

仙境传说是很早以前非常流行的一款网络游戏,其中的人物设置的非常可爱,尤其是一些夸张的头饰和百变的插卡系统让人回味无穷.虽然从游戏性来说仍然逃不出韩国游戏泡菜的怪圈(或者说是一款标准的泡菜游戏),但仍然是可圈可点的. 游戏中玩家要耗费大量时间进行练级,虽然现在的代理昆仑也有经验奖励的措施,比如高级经验书,高级JOB经验书,双倍经验时间区等,但是要让玩家,特别是高等级的玩家进行练级仍然是一件非常痛苦的事情.常有的事是,三转100~110的职业往往要在熔岩地图上打一个熔岩波利的怪物来进行性价比较高的练

原来找字也可以这样用ElseIf FindStr 手机按键精灵 跟大漠的区别

原来找字也可以这样用ElseIf FindStr(646, 1109, 776, 1261, "公告小叉", "FFFFFF-333333", 0.9, intX, intY) > 100 or intx > 0 Then         Tap intX+10, intY+10         Delay 1000 跟大漠的有什么区别?大神答:色值大漠是bgr数据模式   而手机按键精灵是rbg要转换的 大漠常用语句大全API http://xx51.

按键精灵如何调用Excel及按键精灵写入Excel数据的方法教程---入门自动操作表格

首先来建立一个新的Excel文档,在桌面上点击右键,选择[新建]-[Excel工作表],命名为[新手学员]. 现在这个新Excel文档是空白的,我们接下来会通过按键精灵的脚本来打开并写入一些数据.打开按键精灵软件,点击[新建],进入我的脚本界面,再点击进入[全部命令].在[全部命令]中选择[插件命令]-[office办公文档插件]-[打开Excel文档].在命令的下面可以看到命令的详细设置,点击[路径].在弹出窗口中选择[新手学员]的Excel文档,点击打开.可以在命令参数中看到引用的文档,点击

按键精灵获取系统时间定时点击

'==========以下是按键精灵录制的内容==========dim h,m,sRem [wait]h=Hour(time)m = Minute(time)s = Second(time)UserVar HH=0 "时"UserVar MM=0 "分"UserVar SS=0 "秒" If h = HH and m = MM and s=SS MoveTo 82, 40Delay 0LeftDown 1Delay 0LeftClick 1De

最近听说搞脚本挺爽的 弄了个按键精灵的找图找色

首先你需要下载个按键精灵的软件.如下http://www.anjian.com/ 下好后就打开按键精灵,首先新建一个空白脚本,然后找到抓取按钮. 随便找张图来找色 比如如上这张,用抓取按钮选择右键找到色素点,如#c10b2a 然后将该值放到颜色/图形命令去 在图形找色这里,还有找图功能,其实原理都差不多,都是通过周边像素点的色值来找到符合这个值得点,这样就能找到所选的数据. 当你找到你想得到的句柄(windows的某些你想要获取的窗口)时,就可以通过找色或找图去设置你自己所要的功能.

用按键精灵写的手机端按键精灵批量加群的脚本

前几天朋友想在手机上面多加几个群,可是一个个的手工操作太难受了,于是就用按键精灵帮他写了一个自动加群的代码.分享给大家. KeepScreen True Delay 2000 Dim scrWidth, scrHeight,a,x,y,i,intX,intY scrWidth = GetScreenX() scrHeight = GetScreenY() 'ShowMessage scrWidth&"--"&scrHeight TracePrint scrWidth T