找回密码
 立即注册

QQ登录

只需一步,快速开始

其他系统 按键精灵多窗体自动审核PB指令

0
回复
4920
查看
[ 复制链接 ]

293

主题

6

回帖

4093

积分

管理员

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

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



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

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

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

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

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

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


  27. Hwnd = Plugin.Window.FindEx(Hwnd, 0, "TPanel","pnl2")
  28. //MsgBox "查找到的子窗口句柄为:" & Hwnd
  29. //Hwnd = Plugin.Window.FindEx(Hwnd,0,"TPanel",0)
  30. //MsgBox "查找到的子窗口句柄为:" & Hwnd
  31. Dim Hwnds(99)
  32. For n = 1 To 2
  33.     Hwnds(n) = Plugin.Window.FindEx(Hwnd, Hwnds(n - 1), "TPanel", 0)
  34.      
  35.     //text=text&"第"&n&"个子句柄:"&Hwnds(n)&vbcrlf
  36.     Hwndsj=Plugin.Window.FindEx(Hwnds(n),0,"THsBitBtn","查询")
  37.     If Hwndsj>0  Then
  38.     //MsgBox "sss" & Hwndsj
  39.     //得到句柄位置    欢迎加入[url]www.jrit.club[/url]  讨论
  40.     sRect = Plugin.Window.GetClientRect(Hwndsj)
  41.     MsgBox "得到窗口句柄的客户区大小为:" & sRect
  42.      dim MyArray   
  43. MyArray = Split(sRect, "|")   
  44. //下面这句将字符串转换成数值      欢迎加入[url]www.jrit.club[/url]  讨论
  45. x = Clng(MyArray(0)) : y = Clng(MyArray(1))
  46. //鼠标移动到相关位置左键点击   欢迎加入[url]www.jrit.club[/url]  讨论
  47. MoveTo x, y
  48. LeftClick(1)
  49.     End If
  50.     //text=text&Hwnds(n)&"|"
  51. Next
  52. i = i + 1
  53. Next
  54. End If

复制代码

回复

使用道具 举报

293

主题

6

回帖

4093

积分

管理员

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

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



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

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

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

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

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

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


  27. Hwnd = Plugin.Window.FindEx(Hwnd, 0, "TPanel","pnl2")
  28. //MsgBox "查找到的子窗口句柄为:" & Hwnd
  29. //Hwnd = Plugin.Window.FindEx(Hwnd,0,"TPanel",0)
  30. //MsgBox "查找到的子窗口句柄为:" & Hwnd
  31. Dim Hwnds(99)
  32. For n = 1 To 2
  33.     Hwnds(n) = Plugin.Window.FindEx(Hwnd, Hwnds(n - 1), "TPanel", 0)
  34.      
  35.     //text=text&"第"&n&"个子句柄:"&Hwnds(n)&vbcrlf
  36.     Hwndsj=Plugin.Window.FindEx(Hwnds(n),0,"THsBitBtn","查询")
  37.     If Hwndsj>0  Then
  38.     //MsgBox "sss" & Hwndsj
  39.     //得到句柄位置    欢迎加入[url]www.jrit.club[/url]  讨论
  40.     sRect = Plugin.Window.GetClientRect(Hwndsj)
  41.     MsgBox "得到窗口句柄的客户区大小为:" & sRect
  42.      dim MyArray   
  43. MyArray = Split(sRect, "|")   
  44. //下面这句将字符串转换成数值      欢迎加入[url]www.jrit.club[/url]  讨论
  45. x = Clng(MyArray(0)) : y = Clng(MyArray(1))
  46. //鼠标移动到相关位置左键点击   欢迎加入[url]www.jrit.club[/url]  讨论
  47. MoveTo x, y
  48. LeftClick(1)
  49.     End If
  50.     //text=text&Hwnds(n)&"|"
  51. Next
  52. i = i + 1
  53. Next
  54. End If

复制代码

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

返回顶部