- 按键认证大神
- 728264
- 3502
- 18
- 1899 朵
- 27454 个
- 1718 个
- 82980
- 2011-08-04
|
1#
t
T
发表于 2022-03-21 14:46
|
|只看楼主
在按键精灵的界面中,我们可以轻松创建一些控件,并且通过控件的名称来对进其进行一系列操作。那么其他程序里的控件又该怎么进行操作呢?如标题所言,我们需要用到API(Application Programming Interface 应用程序编程接口),下面我将通过API,给大家演示常用控件的常用属性操作。首先需要将我们用到的API进行声明:- Declare Function SendMessage Lib "user32" Alias "SendMessageW" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any)
- Declare Function InvalidateRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT, ByVal bErase As Long) As Long
- Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
- Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
- Declare Function ShowScrollBar Lib "user32" Alias "ShowScrollBar" (ByVal hwnd As Long,ByVal hwnd As Long,ByVal hwnd As Long)
复制代码 控件名称:Edit 输入框- Call SendMessage(hwnd, &HC, 0, str)//设置输入框内容,hwnd为控件句柄,str为设置内容。
- Dim length
- str = space(255)
- length = SendMessage(hwnd, &HD, Len(str), str)//获取输入框内容,hwnd为控件句柄,str为缓冲区。
- str = Left(str, length)
- TracePrint str
- Call SendMessage(Hwnd, &HC5, num, 0)//设置输入框内容最大可输入长度,hwnd为控件句柄,num为长度限制,若为0则取消限制。
- Call SendMessage(Hwnd, &HCC, code, 0)//设置输入框内容为指定字符,hwnd为控件句柄,code为显示的字符的asc码,如Asc(""),若为0则取消指定字符显示。
- Call InvalidateRect(hwnd, 0, 0)//重绘控件,如果不使用该函数,则输入框中的内容显示变更不会马上生效,hwnd为控件句柄。
- Call SendMessage(Hwnd, &HCF, mode, 0)//设置输入框内容是否为只读,hwnd为控件句柄,mode为是否只读,1为只读,0为取消只读。
- Dim Style
- style = SetWindowLong(hwnd, - &H10 , GetWindowLong(hwnd, - &H10 ) or &H2000)//设置输入框只能输入数字,hwnd为控件句柄。
- Call SetWindowLong(hwnd, -&H10 , style)//恢复输入框之前的样式,hwnd为控件句柄
- Call ShowScrollBar(hwnd, type_ , value)//设置输入框显示或隐藏滚动条,type_为滚动条样式,0为水平滚动条,1为垂直滚动条,3为0和1两种样式,value为是否显示,0为隐藏,1为显示。
复制代码 控件名称:Button 按钮- Call SendMessage(hwnd, &HF5, 0, 0)//点击控件,单选框、多选框等其他控件也可用,hwnd为控件句柄。
复制代码 控件名称:OptionBox 单选框、CheckBox 多选框- TracePrint SendMessage(hwnd, &HF0, 0, 0)//获取控件的选中结果,0为未选中,1为选中,hwnd为控件句柄。
- Call SendMessage(hwnd, &HF1, value, 0)//设置控件的选中结果,hwnd为控件句柄,value为是否选中,0为不选中,1为选中。
复制代码 控件名称:ComboBox 下拉框- Call SendMessage(hwnd, &H143, 0, str)//向下拉框末尾添加一行内容,hwnd为控件句柄,str为添加内容。
- Call SendMessage(hwnd, &H14A, index, str)//向下拉框中插入一行内容,hwnd为控件句柄,index为插入位置,str为插入内容。
- Call SendMessage(hwnd, &H14B, 0, 0)//清空下拉框中的内容,hwnd为控件句柄。
- Call SendMessage(hwnd, &H144, index, 0)//从下拉框中删除指定选项内容,hwnd为控件句柄,index为选项索引。
- TracePrint SendMessage(hwnd, &H146, 0 , 0)//获取下拉框选项总数,hwnd为控件句柄。
- TracePrint SendMessage(hwnd, &H147, 0 , 0)//获取下拉框当前选项索引,hwnd为控件句柄。
- TracePrint SendMessage(hwnd, &H15B, 0 , 0)//获取下拉框当前可见区域内的第一个选项的索引,hwnd为控件句柄。
- Dim length
- str = Space(255)
- length = SendMessage(hwnd, &H148, index, str)//获取下拉框指定选项内容,hwnd为控件句柄,index为选项索引,str为缓冲区。
- str = Left(str, length)
- TracePrint str
- TracePrint SendMessage(hwnd, &H14C, index, str)//获取下拉框包含指定内容开头的选项所在选项索引,hwnd为控件句柄,index为起始查找位置,-1为从第一个选项开始查找,str为查找内容。
- TracePrint SendMessage(hwnd, &H158, index, str)//获取下拉框完全匹配指定内容的选项所在选项索引,hwnd为控件句柄,index为起始查找位置,-1为从第一个选项开始查找,str为查找内容。
- Call SendMessage(hwnd, &H14D, index, str)//设置下拉框包含指定内容开头的选项为当前选项,hwnd为控件句柄,index为起始查找位置,-1为从第一个选项开始查找,str为查找内容。
- Call SendMessage(hwnd, &H14E, index, 0)//设置下拉框指定索引为当前选项,hwnd为控件句柄,index为选项索引。
- TracePrint SendMessage(hwnd, &H157,0,0)/获取下拉框是否被展开,0为未展开,1为展开,hwnd为控件句柄。
- Call SendMessage(hwnd, &H14F,value,0)/设置下拉框是否展开,hwnd为控件句柄,value为是否展开,0为不展开,1为展开。
复制代码 控件名称:ListBox 列表框- Call SendMessage(hwnd, &H180, 0, str)//向列表框末尾添加一行内容,hwnd为控件句柄,str为添加内容。
- Call SendMessage(hwnd, &H181, index, str)//向列表框中插入一行内容,hwnd为控件句柄,index为插入位置,str为插入内容。
- Call SendMessage(hwnd, &H184, 0, 0)//清空列表框中的内容,hwnd为控件句柄。
- Call SendMessage(hwnd, &H182, index, 0)//从列表框中删除指定选项内容,hwnd为控件句柄,index为选项索引。
- TracePrint SendMessage(hwnd, &H18B, 0 , 0)//获取列表框选项总数,hwnd为控件句柄。
- TracePrint SendMessage(hwnd, &H188, 0 , 0)//获取列表框当前选项索引,hwnd为控件句柄。
- TracePrint SendMessage(hwnd, &H18E, 0 , 0)//获取列表框当前可见区域内的第一个选项的索引,hwnd为控件句柄。
- Dim length
- str = Space(255)
- length = SendMessage(hwnd, &H189, index, str)//获取列表框指定选项内容,hwnd为控件句柄,index为选项索引,str为缓冲区。
- str = Left(str, length)
- TracePrint str
- TracePrint SendMessage(hwnd, &H18F, index, str)//获取列表框包含指定内容开头的选项所在选项索引,hwnd为控件句柄,index为起始查找位置,-1为从第一个选项开始查找,str为查找内容。
- TracePrint SendMessage(hwnd, &H1A2, index, str)//获取列表框完全匹配指定内容的选项所在选项索引,hwnd为控件句柄,index为起始查找位置,-1为从第一个选项开始查找,str为查找内容。
- Call SendMessage(hwnd, &H18C, index, str)//设置列表框包含指定内容开头的选项为当前选项,hwnd为控件句柄,index为起始查找位置,-1为从第一个选项开始查找,str为查找内容。
- Call SendMessage(hwnd, &H186, index, 0)//设置列表框指定索引为当前选项,hwnd为控件句柄,index为选项索引。
复制代码 控件名称:TabControl 选项卡- Call SendMessage(hwnd, &H1309, 0, 0)//清空选项卡中所有分页,hwnd为控件句柄。
- Call SendMessage(hwnd, &H1308, index, 0)//删除选项卡中指定分页,hwnd为控件句柄,index为分页索引。
- TracePrint SendMessage(hwnd, &H1304, 0, 0)//获取选项卡分页总数,hwnd为控件句柄。
- TracePrint SendMessage(hwnd, &H132F, 0, 0)//获取选项卡当前具有焦点的分页索引,hwnd为控件句柄。
- TracePrint SendMessage(hwnd, &H130B, 0, 0)//获取选项卡当前选中的分页索引,hwnd为控件句柄。
- Call SendMessage(hwnd, &H130C, index, 0)//设置选项卡跳转到指定分页索引,hwnd为控件句柄,index为分页索引。
- Call SendMessage(hwnd, &H1330, index, 0)//设置选项卡指定分页索引获得焦点,hwnd为控件句柄,index为分页索引。
复制代码 控件名称:TreeView 树视图- TracePrint SendMessage(hwnd, &H110A, &H0, 0)//获取树状图第一个根节点句柄,hwnd为控件句柄。
- TracePrint SendMessage(hwnd, &H110A, &H4, roothwnd)//获取树状图指定根节点的第一个子节点句柄,hwnd为控件句柄,roothwnd为指定根节点句柄。
- TracePrint SendMessage(hwnd, &H110A, &H1, nodehwnd)//获取树状图指定节点的下一个节点句柄,hwnd为控件句柄,nodehwnd为指定节点句柄。
- TracePrint SendMessage(hwnd, &H110A, &H2, nodehwnd)//获取树状图指定节点的上一个节点句柄,hwnd为控件句柄,nodehwnd为指定节点句柄。
- TracePrint SendMessage(hwnd, &H110A, &H6, nodehwnd)//获取树状图指定节点的下一个可见节点句柄,hwnd为控件句柄,nodehwnd为指定节点句柄。
- TracePrint SendMessage(hwnd, &H110A, &H7, nodehwnd)//获取树状图指定节点的上一个可见节点句柄,hwnd为控件句柄,nodehwnd为指定节点句柄。
- TracePrint SendMessage(hwnd, &H110A, &H9, 0)//获取树状图当前被选中节点句柄,hwnd为控件句柄。
- TracePrint SendMessage(hwnd, &H110A, &H5, 0)//获取树状图第一个可见节点句柄,hwnd为控件句柄。
- TracePrint SendMessage(hwnd, &H110A, &HA, 0)//获取树状图最后一个展开的节点句柄,hwnd为控件句柄。
- TracePrint SendMessage(hwnd, &H110A, &H3, nodehwnd)//获取树状图指定节点的根节点句柄,hwnd为控件句柄,nodehwnd为指定节点句柄。
- TracePrint SendMessage(hwnd, &H1114, 0, nodehwnd)//设置树状图滚动至指定节点位置,hwnd为控件句柄,nodehwnd为指定节点句柄。
- TracePrint SendMessage(hwnd, &H110B, &H9, nodehwnd)//点击树状图指定节点,hwnd为控件句柄,nodehwnd为指定节点句柄。
- TracePrint SendMessage(hwnd, &H1102, mode, nodehwnd)//设置树状图指定节点展开状态,hwnd为控件句柄,mode为操作模式,1为折叠,2为展开,3为反选,nodehwnd为指定节点句柄。
复制代码
|