WH_MOUSE_LL для ChromiumWebBrowser (CefSharp) - PullRequest
0 голосов
/ 02 июля 2018

Я пытаюсь перенаправить мышь из глобального ввода в объект ChromiumWebBrowser, и у меня возникли некоторые проблемы. Захват мыши работает, но переадресация его на объект браузера не работает. Я использую класс, который наследует ChromiumWebBrowser для достижения этой цели.

Причина, по которой я хочу это сделать, заключается в том, что я рисую форму, на которой браузер включен, на рабочем столе, и это приводит к тому, что он не получает события мыши.

Пользовательский класс браузера:

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 голосов
/ 02 июля 2018

Решено с помощью комментария 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());
}
...