WH_MOUSE_LL至ChromiumWebBrowser(CefSharp)

时间:2018-07-01 22:25:03

标签: c# chromium-embedded cefsharp

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

我要这样做的原因是因为我正在将浏览器所在的表格绘制到桌面上,这导致它不接收鼠标事件。

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类:https://hastebin.com/ocuwesogin.cs

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

使用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());
}