我目前正在使用 SendInput Ctrl+A 和 Ctrl+C 从网站提取文本,然后我密切关注剪贴板并提取文本。这要求 EdgeBrowser 窗口具有焦点,这部分不适用于我的程序,因为文本通常每分钟更改一次。
所以我的问题是:有没有办法在没有焦点的情况下从 EdgeBrowser 窗口中提取可见文本?
P.s. Edge 浏览器通过 dll 嵌入到我的应用程序中。 (c++ Builder 组件)
提前致谢 阿斯格
使用C++Builder组件TEdgeBrowser只需要两行代码
一个用于在网页上执行脚本:
EdgeBrowser->ExecuteScript(L"document.body.innerText");
然后在 ExecuteScript 事件中返回结果:
void __fastcall TForm1::EdgeBrowserExecuteScript(TCustomEdgeBrowser *Sender, HRESULT AResult, const UnicodeString AResultObjectAsJson)
{
Memo1->Text = Sysutils::StringReplace( AResultObjectAsJson, L"\\n", L"\r\n", TReplaceFlags()<<rfReplaceAll );
}
StringReplace 是由于 JSon 字符串中的错误造成的。