金融it 发表于 2017-6-28 10:09:21

按键精灵多窗体自动审核PB指令

以下代码是实现了按键精灵自动点击 投资建议查询中的 查找按钮 ,点击审核按钮原理一样,大家自己修改即可。
点击的前提是需要手工打开 投资建议查询 菜单,这样才能寻找到句柄,也可以程序自动打开该菜单,那样修改下代码即可。
恒生PB 0429G以上版本可以命令行启动, 配置上按键精灵就可以完全无人操作了
   大体原理都给出来了,有问题大家交流。 具体实现代码就不给出了,大家自己实现吧

当然代码优化下 可以多线程操作,速度更快



//下面这句是按查找方式(模糊),遍历符合窗口类名(0)且标题("机构经纪投资管理")的句柄,保存到数组(HwndEx)里   欢迎加入www.jrit.club讨论
Hwndbt = Plugin.Window.Search("机构经纪投资管理")
MyArray1 = Split(Hwndbt, "|")
//将所有的窗口句柄肢解获取所有窗口句柄
If   UBound(MyArray1)>=0 Then   //进行循环
i=0
For UBound(MyArray1)//进行循环
//获取第一个窗口句柄   欢迎加入www.jrit.club讨论
Hwnd = Plugin.Window.FindEx(MyArray1(i), 0, 0, 0)
// 以下3句是讲窗体置前   欢迎加入www.jrit.club讨论
Call Plugin.Window.Active(Hwnd)   
Call Plugin.Window.Show(Hwnd)
Call Plugin.Window.Top(Hwnd, 0)// 0 表示 是置顶 1是取消置顶    欢迎加入www.jrit.club讨论

//下面这句是查找窗口类名("Notepad")或者标题(0),返回找到的句柄Hwnd
Hwnd = Plugin.Window.Find("TfrmMain", 0)

//MsgBox "查找到的父窗口句柄为:"& Hwnd

Hwnd = Plugin.Window.FindEx(Hwnd, 0, "TPanel","")
//MsgBox "查找到的子窗口句柄为:" & Hwnd
Hwnd = Plugin.Window.FindEx(Hwnd, 0, "TRzPageControl","")
//MsgBox "查找到的子窗口句柄为:" & Hwnd

Hwnd = Plugin.Window.FindEx(Hwnd, 0, "TRzTabSheet","投资建议查询")
//MsgBox "查找到的子窗口句柄为:" & Hwnd
Hwnd = Plugin.Window.FindEx(Hwnd, 0, "TfrmEntrustApproveMain","投资建议查询")
//MsgBox "查找到的子窗口句柄为:" & Hwnd

Hwnd = Plugin.Window.FindEx(Hwnd, 0, "TfrmUnapprovedEntrustsQryFrame","")
//MsgBox "查找到的子窗口句柄为:" & Hwnd


Hwnd = Plugin.Window.FindEx(Hwnd, 0, "TPanel","pnl2")
//MsgBox "查找到的子窗口句柄为:" & Hwnd
//Hwnd = Plugin.Window.FindEx(Hwnd,0,"TPanel",0)
//MsgBox "查找到的子窗口句柄为:" & Hwnd
Dim Hwnds(99)
For n = 1 To 2
    Hwnds(n) = Plugin.Window.FindEx(Hwnd, Hwnds(n - 1), "TPanel", 0)
   
    //text=text&"第"&n&"个子句柄:"&Hwnds(n)&vbcrlf
    Hwndsj=Plugin.Window.FindEx(Hwnds(n),0,"THsBitBtn","查询")
    If Hwndsj>0Then
    //MsgBox "sss" & Hwndsj
    //得到句柄位置    欢迎加入www.jrit.club讨论
    sRect = Plugin.Window.GetClientRect(Hwndsj)
    MsgBox "得到窗口句柄的客户区大小为:" & sRect
   dim MyArray   
MyArray = Split(sRect, "|")   
//下面这句将字符串转换成数值      欢迎加入www.jrit.club讨论
x = Clng(MyArray(0)) : y = Clng(MyArray(1))
//鼠标移动到相关位置左键点击   欢迎加入www.jrit.club讨论
MoveTo x, y
LeftClick(1)
    End If
    //text=text&Hwnds(n)&"|"
Next
i = i + 1
Next
End If


页: [1]
查看完整版本: 按键精灵多窗体自动审核PB指令