假设我有一个编译的二进制程序,它运行并在屏幕上显示一些 GUI。我需要从 Win32 中的另一个程序访问其工具栏,找到一个按钮并单击它。
我知道如何找到工具栏的 Hwnd,但我真的不知道如何枚举它上面的按钮。任何想法如何在 Win32 调用中做到这一点?
有没有像 Spy++ 这样的工具可以在工具栏下显示按钮句柄?Spy++ 不这样做。
谢谢
如果它是标准的 Win32 工具栏控件,则向工具栏发送一条TB_BUTTONCOUNT消息以确定工具栏上有多少按钮,然后发送一条TB_GETBUTTON消息以检索有关给定索引处的按钮的信息。
棘手的部分是TBBUTTON接收按钮信息的结构需要在拥有工具栏的同一进程中分配,因此您必须:
GetWindowThreadProcessId()以检索工具栏的进程 IDOpenProcess()以获取HANDLE该过程VirtualAllocEx()以在该进程内部分配结构TB_GETBUTTON消息发送到工具栏,指定由返回的指针VirtualAllocEx()ReadProcessMemory()将结构数据复制回您自己的进程,以便您可以根据需要对其进行处理VirtualFreeEx()以释放分配的内存。| 归档时间: |
|
| 查看次数: |
4616 次 |
| 最近记录: |