• 按键公众号 :
按键精灵电脑版
立即下载

软件版本:2014.06
软件大小:22.9M
更新时间:2021-12-03

按键精灵安卓版
立即下载

软件版本:3.7.2
软件大小:46.2M
更新时间:2023-05-10

按键精灵iOS版
立即下载

软件版本:1.8.0
软件大小:29.2M
更新时间:2023-03-21

按键手机助手
立即下载

软件版本:3.8.0
软件大小:262M
更新时间:2023-05-30

快捷导航

登录 后使用快捷导航
没有帐号? 注册

发新话题 回复该主题

[昨夜星辰] 【源码】利用API操作其他程序中的控件 [复制链接]

1#
在按键精灵的界面中,我们可以轻松创建一些控件,并且通过控件的名称来对进其进行一系列操作。那么其他程序里的控件又该怎么进行操作呢?如标题所言,我们需要用到API(Application Programming Interface 应用程序编程接口),下面我将通过API,给大家演示常用控件的常用属性操作。

首先需要将我们用到的API进行声明:
  1. Declare Function SendMessage Lib "user32" Alias "SendMessageW" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any)
  2. Declare Function InvalidateRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT, ByVal bErase As Long) As Long
  3. Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
  4. Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
  5. Declare Function ShowScrollBar Lib "user32" Alias "ShowScrollBar" (ByVal hwnd As Long,ByVal hwnd As Long,ByVal hwnd As Long)
复制代码
控件名称:Edit 输入框
  1. Call SendMessage(hwnd, &HC, 0, str)//设置输入框内容,hwnd为控件句柄,str为设置内容。

  2. Dim length
  3. str = space(255)
  4. length = SendMessage(hwnd, &HD, Len(str), str)//获取输入框内容,hwnd为控件句柄,str为缓冲区。
  5. str = Left(str, length)
  6. TracePrint str

  7. Call SendMessage(Hwnd, &HC5, num, 0)//设置输入框内容最大可输入长度,hwnd为控件句柄,num为长度限制,若为0则取消限制。

  8. Call SendMessage(Hwnd, &HCC, code, 0)//设置输入框内容为指定字符,hwnd为控件句柄,code为显示的字符的asc码,如Asc(""),若为0则取消指定字符显示。
  9. Call InvalidateRect(hwnd, 0, 0)//重绘控件,如果不使用该函数,则输入框中的内容显示变更不会马上生效,hwnd为控件句柄。

  10. Call SendMessage(Hwnd, &HCF, mode, 0)//设置输入框内容是否为只读,hwnd为控件句柄,mode为是否只读,1为只读,0为取消只读。

  11. Dim Style
  12. style = SetWindowLong(hwnd, - &H10 , GetWindowLong(hwnd, - &H10 ) or &H2000)//设置输入框只能输入数字,hwnd为控件句柄。
  13. Call SetWindowLong(hwnd, -&H10 , style)//恢复输入框之前的样式,hwnd为控件句柄

  14. Call ShowScrollBar(hwnd, type_ , value)//设置输入框显示或隐藏滚动条,type_为滚动条样式,0为水平滚动条,1为垂直滚动条,3为0和1两种样式,value为是否显示,0为隐藏,1为显示。
复制代码
控件名称:Button 按钮
  1. Call SendMessage(hwnd, &HF5, 0, 0)//点击控件,单选框、多选框等其他控件也可用,hwnd为控件句柄。
复制代码
控件名称:OptionBox 单选框、CheckBox 多选框
  1. TracePrint SendMessage(hwnd, &HF0, 0, 0)//获取控件的选中结果,0为未选中,1为选中,hwnd为控件句柄。

  2. Call SendMessage(hwnd, &HF1, value, 0)//设置控件的选中结果,hwnd为控件句柄,value为是否选中,0为不选中,1为选中。
复制代码
控件名称:ComboBox 下拉框
  1. Call SendMessage(hwnd, &H143, 0, str)//向下拉框末尾添加一行内容,hwnd为控件句柄,str为添加内容。

  2. Call SendMessage(hwnd, &H14A, index, str)//向下拉框中插入一行内容,hwnd为控件句柄,index为插入位置,str为插入内容。

  3. Call SendMessage(hwnd, &H14B, 0, 0)//清空下拉框中的内容,hwnd为控件句柄。

  4. Call SendMessage(hwnd, &H144, index, 0)//从下拉框中删除指定选项内容,hwnd为控件句柄,index为选项索引。

  5. TracePrint SendMessage(hwnd, &H146, 0 , 0)//获取下拉框选项总数,hwnd为控件句柄。

  6. TracePrint SendMessage(hwnd, &H147, 0 , 0)//获取下拉框当前选项索引,hwnd为控件句柄。

  7. TracePrint SendMessage(hwnd, &H15B, 0 , 0)//获取下拉框当前可见区域内的第一个选项的索引,hwnd为控件句柄。

  8. Dim length
  9. str = Space(255)
  10. length = SendMessage(hwnd, &H148, index, str)//获取下拉框指定选项内容,hwnd为控件句柄,index为选项索引,str为缓冲区。
  11. str = Left(str, length)
  12. TracePrint str

  13. TracePrint SendMessage(hwnd, &H14C, index, str)//获取下拉框包含指定内容开头的选项所在选项索引,hwnd为控件句柄,index为起始查找位置,-1为从第一个选项开始查找,str为查找内容。

  14. TracePrint SendMessage(hwnd, &H158, index, str)//获取下拉框完全匹配指定内容的选项所在选项索引,hwnd为控件句柄,index为起始查找位置,-1为从第一个选项开始查找,str为查找内容。

  15. Call SendMessage(hwnd, &H14D, index, str)//设置下拉框包含指定内容开头的选项为当前选项,hwnd为控件句柄,index为起始查找位置,-1为从第一个选项开始查找,str为查找内容。

  16. Call SendMessage(hwnd, &H14E, index, 0)//设置下拉框指定索引为当前选项,hwnd为控件句柄,index为选项索引。

  17. TracePrint SendMessage(hwnd, &H157,0,0)/获取下拉框是否被展开,0为未展开,1为展开,hwnd为控件句柄。

  18. Call SendMessage(hwnd, &H14F,value,0)/设置下拉框是否展开,hwnd为控件句柄,value为是否展开,0为不展开,1为展开。
复制代码
控件名称:ListBox 列表框
  1. Call SendMessage(hwnd, &H180, 0, str)//向列表框末尾添加一行内容,hwnd为控件句柄,str为添加内容。

  2. Call SendMessage(hwnd, &H181, index, str)//向列表框中插入一行内容,hwnd为控件句柄,index为插入位置,str为插入内容。

  3. Call SendMessage(hwnd, &H184, 0, 0)//清空列表框中的内容,hwnd为控件句柄。

  4. Call SendMessage(hwnd, &H182, index, 0)//从列表框中删除指定选项内容,hwnd为控件句柄,index为选项索引。

  5. TracePrint SendMessage(hwnd, &H18B, 0 , 0)//获取列表框选项总数,hwnd为控件句柄。

  6. TracePrint SendMessage(hwnd, &H188, 0 , 0)//获取列表框当前选项索引,hwnd为控件句柄。

  7. TracePrint SendMessage(hwnd, &H18E, 0 , 0)//获取列表框当前可见区域内的第一个选项的索引,hwnd为控件句柄。

  8. Dim length
  9. str = Space(255)
  10. length = SendMessage(hwnd, &H189, index, str)//获取列表框指定选项内容,hwnd为控件句柄,index为选项索引,str为缓冲区。
  11. str = Left(str, length)
  12. TracePrint str

  13. TracePrint SendMessage(hwnd, &H18F, index, str)//获取列表框包含指定内容开头的选项所在选项索引,hwnd为控件句柄,index为起始查找位置,-1为从第一个选项开始查找,str为查找内容。

  14. TracePrint SendMessage(hwnd, &H1A2, index, str)//获取列表框完全匹配指定内容的选项所在选项索引,hwnd为控件句柄,index为起始查找位置,-1为从第一个选项开始查找,str为查找内容。

  15. Call SendMessage(hwnd, &H18C, index, str)//设置列表框包含指定内容开头的选项为当前选项,hwnd为控件句柄,index为起始查找位置,-1为从第一个选项开始查找,str为查找内容。

  16. Call SendMessage(hwnd, &H186, index, 0)//设置列表框指定索引为当前选项,hwnd为控件句柄,index为选项索引。
复制代码
控件名称:TabControl 选项卡
  1. Call SendMessage(hwnd, &H1309, 0, 0)//清空选项卡中所有分页,hwnd为控件句柄。

  2. Call SendMessage(hwnd, &H1308, index, 0)//删除选项卡中指定分页,hwnd为控件句柄,index为分页索引。

  3. TracePrint SendMessage(hwnd, &H1304, 0, 0)//获取选项卡分页总数,hwnd为控件句柄。

  4. TracePrint SendMessage(hwnd, &H132F, 0, 0)//获取选项卡当前具有焦点的分页索引,hwnd为控件句柄。

  5. TracePrint SendMessage(hwnd, &H130B, 0, 0)//获取选项卡当前选中的分页索引,hwnd为控件句柄。

  6. Call SendMessage(hwnd, &H130C, index, 0)//设置选项卡跳转到指定分页索引,hwnd为控件句柄,index为分页索引。

  7. Call SendMessage(hwnd, &H1330, index, 0)//设置选项卡指定分页索引获得焦点,hwnd为控件句柄,index为分页索引。
复制代码
控件名称:TreeView 树视图
  1. TracePrint SendMessage(hwnd, &H110A, &H0, 0)//获取树状图第一个根节点句柄,hwnd为控件句柄。

  2. TracePrint SendMessage(hwnd, &H110A, &H4, roothwnd)//获取树状图指定根节点的第一个子节点句柄,hwnd为控件句柄,roothwnd为指定根节点句柄。

  3. TracePrint SendMessage(hwnd, &H110A, &H1, nodehwnd)//获取树状图指定节点的下一个节点句柄,hwnd为控件句柄,nodehwnd为指定节点句柄。

  4. TracePrint SendMessage(hwnd, &H110A, &H2, nodehwnd)//获取树状图指定节点的上一个节点句柄,hwnd为控件句柄,nodehwnd为指定节点句柄。

  5. TracePrint SendMessage(hwnd, &H110A, &H6, nodehwnd)//获取树状图指定节点的下一个可见节点句柄,hwnd为控件句柄,nodehwnd为指定节点句柄。

  6. TracePrint SendMessage(hwnd, &H110A, &H7, nodehwnd)//获取树状图指定节点的上一个可见节点句柄,hwnd为控件句柄,nodehwnd为指定节点句柄。

  7. TracePrint SendMessage(hwnd, &H110A, &H9, 0)//获取树状图当前被选中节点句柄,hwnd为控件句柄。

  8. TracePrint SendMessage(hwnd, &H110A, &H5, 0)//获取树状图第一个可见节点句柄,hwnd为控件句柄。

  9. TracePrint SendMessage(hwnd, &H110A, &HA, 0)//获取树状图最后一个展开的节点句柄,hwnd为控件句柄。

  10. TracePrint SendMessage(hwnd, &H110A, &H3, nodehwnd)//获取树状图指定节点的根节点句柄,hwnd为控件句柄,nodehwnd为指定节点句柄。

  11. TracePrint SendMessage(hwnd, &H1114, 0, nodehwnd)//设置树状图滚动至指定节点位置,hwnd为控件句柄,nodehwnd为指定节点句柄。

  12. TracePrint SendMessage(hwnd, &H110B, &H9, nodehwnd)//点击树状图指定节点,hwnd为控件句柄,nodehwnd为指定节点句柄。

  13. TracePrint SendMessage(hwnd, &H1102, mode, nodehwnd)//设置树状图指定节点展开状态,hwnd为控件句柄,mode为操作模式,1为折叠,2为展开,3为反选,nodehwnd为指定节点句柄。
复制代码

    已有1评分我要评分查看所有评分

    最后编辑昨夜星辰 最后编辑于 2022-03-22 00:27:50
    近期制作:
    传奇私服各种反外挂插件版本挂机软件,可教可售
    原神加速、连发辅助工具
    天下3自动钓大鱼辅助工具

    承接脚本定制,点击下方联系
    QQ:250039815

    交流群:101296478

    2#

    感谢分享,学习

    3#

    感谢分享,学习一下

    4#

    经典

    接单QQ:16256223。12年信誉保证!组别:〖官方脚本作者

    网页,电脑,安卓,模拟器,验证码识别!

    自动办公,网页操作,填表投票,账号注册,学习答题,聊天引流,数据监测,操作软件![/co
    5#

    感谢分享

    6#

    感谢分享,支持

    7#

    大佬

    8#

    感谢

    9#

    感谢分享,这个真不错

    10#

    学习一下!!!!!

    11#

    怎样读取 Edit输入框 中的内容?

    12#

    路过看看。。。。

    发新话题 回复该主题