gpt4 book ai didi

winapi - Win32,如何访问工具栏上的按钮

转载 作者:行者123 更新时间:2023-12-02 17:43:32 26 4
gpt4 key购买 nike

假设我有一个已编译的二进制程序,它运行并在屏幕上显示一些 GUI。我需要从 Win32 中的另一个程序访问它的工具栏,找到一个按钮并单击它。

我知道如何找到工具栏的 Hwnd,但我真的不知道如何枚举它上面的按钮。有任何关于如何在 Win32 调用中执行此操作的想法吗?

是否有像 Spy++ 这样的工具能够在工具栏下显示按钮句柄?Spy++ 不会这样做。

谢谢

最佳答案

如果它是标准的 Win32 工具栏控件,那么您向工具栏发送一个 TB_BUTTONCOUNT消息以确定工具栏上有多少个按钮,然后发送 TB_GETBUTTON消息以检索有关给定索引处按钮的信息。

棘手的部分是 TBBUTTON接收按钮信息的结构需要在拥有工具栏的同一进程中分配,因此您必须:

  1. 调用GetWindowThreadProcessId()检索工具栏的进程 ID
  2. 调用OpenProcess()获取该进程的HANDLE
  3. 调用VirtualAllocEx()分配该进程内部的结构
  4. 发送TB_GETBUTTON消息到工具栏,指定 VirtualAllocEx() 返回的指针
  5. 调用ReadProcessMemory()将结构数据复制回您自己的流程,以便您可以根据需要进行处理
  6. 调用VirtualFreeEx()释放分配的内存。

关于winapi - Win32,如何访问工具栏上的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17724168/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com