C# 如何在特定窗口句柄中查找下一次鼠标左键单击的位置(坐标)
所以我试图在一个特定的窗口中找到下一个左键,而不是整个屏幕 基本上,我想按下一个按钮,然后应用程序在特定窗口中等待下一次左键单击,然后 它用坐标记录它的位置 另外,为了清楚起见,我正在用c#编写一个windows窗体,让您的按钮用于获取目标C# 如何在特定窗口句柄中查找下一次鼠标左键单击的位置(坐标),c#,winforms,winapi,mouse,C#,Winforms,Winapi,Mouse,所以我试图在一个特定的窗口中找到下一个左键,而不是整个屏幕 基本上,我想按下一个按钮,然后应用程序在特定窗口中等待下一次左键单击,然后 它用坐标记录它的位置 另外,为了清楚起见,我正在用c#编写一个windows窗体,让您的按钮用于获取目标HWND拥有的线程ID,然后在该线程中安装特定于线程的或钩子 如果要在另一个进程中钩住线程,则需要在DLL中实现钩子 钩子将告诉您接收捕获活动的HWND,以及鼠标的坐标。当您在目标HWND上检测到WM|LBUTTON(DOWN | UP)消息时,您可以移除挂钩
HWND
拥有的线程ID,然后在该线程中安装特定于线程的或钩子
如果要在另一个进程中钩住线程,则需要在DLL中实现钩子
钩子将告诉您接收捕获活动的
HWND
,以及鼠标的坐标。当您在目标HWND
上检测到WM|LBUTTON(DOWN | UP)
消息时,您可以移除挂钩。鼠标单击的是同一应用程序还是外部应用程序?这说明了如何工作。@gunr2171外部应用程序以客户端相对坐标报告位置。根据使用情况,这些坐标需要进行适当的转换。@i在WH\u GETMESSAGE
hook中不可检测,原始消息数据将提供相对于接收窗口客户端区域的鼠标坐标,是的。但是钩子提供的包装MSG
也会提供屏幕坐标。就像一个WH_鼠标
hook一样。