c++ 从边缘浏览器中提取文本,就像使用 Ctrl+A 和 Ctrl+C

问题描述 投票:0回答:1

我目前正在使用 SendInput Ctrl+A 和 Ctrl+C 从网站提取文本,然后我密切关注剪贴板并提取文本。这要求 EdgeBrowser 窗口具有焦点,这部分不适用于我的程序,因为文本通常每分钟更改一次。

所以我的问题是:有没有办法在没有焦点的情况下从 EdgeBrowser 窗口中提取可见文本?

P.s. Edge 浏览器通过 dll 嵌入到我的应用程序中。 (c++ Builder 组件)

提前致谢 阿斯格

c++ windows extract tedgebrowser
1个回答
0
投票

使用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 字符串中的错误造成的。

© www.soinside.com 2019 - 2024. All rights reserved.