WH_MOUSE_LL 至 ChromiumWebBrowser (CefSharp)
WH_MOUSE_LL to ChromiumWebBrowser (CefSharp)
我正在尝试将鼠标从全局输入转发到 ChromiumWebBrowser 对象,但我遇到了一些问题。鼠标捕获有效,但将其转发到浏览器对象无效。我正在使用继承 ChromiumWebBrowser 的 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());
}
我正在尝试将鼠标从全局输入转发到 ChromiumWebBrowser 对象,但我遇到了一些问题。鼠标捕获有效,但将其转发到浏览器对象无效。我正在使用继承 ChromiumWebBrowser 的 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());
}