我需要一些帮助。我在最后写了我的问题,并将首先解释我的代码究竟应该做什么:
我正在制作一个与其他节目沟通的节目。我需要我的软件才能点击另一个程序上的按钮,我相信这样做的相应代码是:
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: lpszClass
和lpszWindow
变量是什么?如何获取它们?
问题3:这是否是正确的做法?如果不是,请指出正确的方向!
答案 0 :(得分:0)
您不需要按钮的句柄,您需要其父窗口的句柄。该按钮将BN_CLICKED发送到其父窗口。用spy ++查找按钮的ID。然后使用父级的EnumChildWindows查看所有子窗口。对于每个孩子,使用GetWindowLong和GWL_ID来检查其ID。