为了拦截CefSharp.WinForms.ChromiumWebBrowser控件的WndProc消息,我正在使用派生类,所以我可以使用Protected Overrides Sub WndProc(ByRef m As Message)
。
我有两个问题:
寻找答案我偶然发现了以下SO答案(https://stackoverflow.com/a/20489430/4247806),它提供了解释和解决方案,但对于不应该那么不寻常的任务来说,这似乎相当复杂。我也没有为CEF版本工作(CEF 3.2454.1344.g2782fb8,Chromium 45.0.2454.101和.net 4.5.1。)。
具体问题是:
答案 0 :(得分:0)
您链接的答案基本上是正确的,默认是在不同的线程中运行消息循环,这使得接收消息变得困难。您可以使用NativeWindow
来挂钩相关流程,有关示例,请参阅https://github.com/cefsharp/CefSharp/blob/cefsharp/47/CefSharp.WinForms.Example/ChromeWidgetMessageInterceptor.cs#L22。下载源代码以查看其实际效果。
另一个选项是使用现有的WinForms
消息循环,请参阅https://github.com/cefsharp/CefSharp/commit/fe11f2eada542f49e4eef0feed9b2b0978446bbf#diff-f142d024925e73816b0fabd620d2f71d以获取示例(如果您无法跟踪需要设置的部分,请下载源代码并单步执行)。