gpt4 book ai didi

winapi - 在另一个程序的窗口中查找按钮的句柄

转载 作者:行者123 更新时间:2023-12-05 07:59:04 28 4
gpt4 key购买 nike

我需要一些帮助。我在最后写了我的问题,并首先解释我的代码到底应该做什么:

我正在制作一个可以与其他程序通信的程序。我需要我的软件做的是能够单击另一个程序上的按钮,我相信执行此操作的适当代码是:

SendMessage(hWnd, Msg, wParam, lParam);

Msg = B_Click
wParam = 0;
lParam = 0;

但是我不确定如何获取 hWnd,它是同时运行的另一个程序的特定窗口上的特定按钮的句柄。我在某处读到我可以执行以下操作:

HWND buttonHandle = FindWindowEx(hwndParent, hwndChildAfter, lpszClass, lpszWindow);

哪里:

HWND hwndParent = A handle to the parent window whose child windows are to be searched
HWND hwndChildAfter = if its null child windows are of the parent window are looked through
LPCTSTR lpszClass = (NOT SURE WHAT THIS IS)
LPCTSTR lpszWindow = (NOT SURE WHAT THIS IS)

不过,我在使用 FindWindowEX() 函数时遇到了一些问题。

问题 1:我正在查看的窗口有各种按钮,那么函数如何知道我正在查看的是 3 个按钮中的哪一个?

问题 2:lpszClasslpszWindow 变量是什么?我如何获取它们?

问题 3:这是正确的方法吗?如果不是,请指出正确的方向!

最佳答案

您不需要按钮的句柄,您需要其父窗口的句柄。该按钮将 BN_CLICKED 发送到其父窗口。使用 spy++ 查找按钮的 ID。然后使用父级的 EnumChildWindows 查看所有的子窗口。对于每个 child ,使用带有 GWL_ID 的 GetWindowLong 来检查其 ID。

关于winapi - 在另一个程序的窗口中查找按钮的句柄,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23173614/

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