LPWSTR pwStr = nullptr;
args->TryGetWebMessageAsString(&pwStr);
if (_wcsnicmp(pwStr,CHAR_TOKEN,MfxCountOf(CHAR_TOKEN)-1)==0)
{
// Get the Keycode from the message
auto iChar = wcstol(pwStr+MfxCountOf(CHAR_TOKEN)-1,nullptr,10);
// Do something with the intercepted character
...
}
::CoTaskMemFree(pwStr);
2条答案
按热度按时间ghg1uchk1#
正如在讨论中提到的,我解决了这个问题。
首先,我将一个Java脚本注入浏览器
然后我添加了一个
ICoreWebView2WebMessageReceivedEventHandler
和add_WebMessageReceived
来处理来自托管WebView2的适当消息。jhdbpxl92#
拦截击键的另一种方法如下:https://github.com/MicrosoftEdge/WebView2Feedback/issues/1215
通过在
CoreWebView2EnvironmentOptions
上设置AdditionalBrowserArguments("--enable-features=msWebView2BrowserHitTransparent")
,主机窗口可以接收关键消息以进行进一步处理。