WH_MOUSE_LL 至 ChromiumWebBrowser (CefSharp)

WH_MOUSE_LL to ChromiumWebBrowser (CefSharp)

我正在尝试将鼠标从全局输入转发到 ChromiumWebBrowser 对象,但我遇到了一些问题。鼠标捕获有效,但将其转发到浏览器对象无效。我正在使用继承 ChromiumWebBrowser 的 class 来实现此目的。

我想这样做的原因是我将浏览器所在的表单绘制到桌面上,这导致它无法接收鼠标事件。

Custom browser class:

public class BGChrome : ChromiumWebBrowser
{
    private UserActivityHook hooker = null;

    public BGChrome(string address, IRequestContext requestContext = null) : base(address, requestContext)
    {
        hooker = new UserActivityHook();
        hooker.OnMouseActivity += new MouseEventHandler(MouseMove);
    }

    private new void MouseMove(object sender, MouseEventArgs e)
    {
        base.OnMouseMove(e);
    }
}

UserActivityHook class: https://hastebin.com/ocuwesogin.cs

感谢任何帮助。

使用 amaitland 的评论解决了。 使用 http://cefsharp.github.io/api/63.0.0/html/M_CefSharp_WebBrowserExtensions_SendMouseMoveEvent.htm

将我的 MouseMove 功能更改为

private new void MouseMove(object sender, MouseEventArgs e)
{
    this.GetBrowserHost().SendMouseMoveEvent(e.X, e.Y, false, new CefEventFlags());
}