5,943
社区成员
发帖
与我相关
我的任务
分享如果某些软件的控件是自绘制的,则无法使用通常的方式获取它们的句柄。这种情况下,你可以尝试以下方法来获取控件的句柄:
使用 Windows API 函数 EnumWindows()、EnumChildWindows() 和 FindWindow() 来枚举窗口和子窗口,以查找目标控件的句柄。在调用 EnumWindows() 和 EnumChildWindows() 函数时,你需要传递一个回调函数来处理每个窗口和子窗口。
使用 Windows API 函数 GetDesktopWindow() 和 WindowFromPoint() 来获取指定坐标下的窗口句柄。你可以尝试在控件周围移动鼠标,并使用 WindowFromPoint() 函数来获取最接近的控件句柄。
使用 Windows API 函数 GetWindowRect() 来获取窗口的位置和大小,然后使用 Windows API 函数 BitBlt() 来获取窗口的图像。你可以分析窗口的图像来确定控件的位置和大小,并使用 Windows API 函数 CreateWindow() 来创建一个具有相同位置和大小的新窗口。
以上方法不一定适用于所有情况,但它们可能会对某些特定的自绘制控件有效。
所谓自绘制,就是在parent控制上绘制,自己没有窗口,当然也就没有句柄了。
你这重复提问呢。