【问题标题】:How to send a mouse click event to a hidden window?如何将鼠标单击事件发送到隐藏窗口?
【发布时间】:2009-10-25 16:08:50
【问题描述】:

认识到可能需要一些互操作,如何将鼠标单击事件发送到当前未显示的窗口?我有一个应用程序作为服务运行并摆弄隐藏的窗口,需要向其中一个发送鼠标单击事件,即使它实际上不能显示窗口。

我会这样做的正常方法是简单地将点击发送到适当位置的屏幕,但显然这种方法在这种情况下不起作用。想法?

【问题讨论】:

    标签: c# winforms winapi


    【解决方案1】:

    如果你能得到窗口的 HWND,那就很容易了。 使用 PostMessage() 和 WM_LBUTTONDOWN 进行左键单击。

    示例:点击位置 10,10(未测试,C)

    HWND hWnd = (hwnd of window)
    WORD mouseX = 10;
    WORD mouseY = 10;
    PostMessage(hWnd,WM_LBUTTONDOWN,0,MAKELPARAM(mouseX,mouseY));
    

    【讨论】:

    • 发布消息想要的坐标是相对于屏幕还是目标窗口?
    【解决方案2】:

    使用 Spy++ 找出在窗口显示时将哪些 Windows 消息发送到窗口,然后用鼠标物理单击它,然后使用 SendMessage 直接发送这些消息。

    【讨论】:

    • 好的,Spy++ 有一些有用的提示,我如何访问“SendMessage”?
    猜你喜欢
    • 2017-07-28
    • 2013-01-26
    • 2014-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多