所以我有这个项目,在这个项目中,我需要有几个选项卡 (TPageControl) 运行 Flash 页面,并且不时抓取它们的屏幕截图,而无需切换活动选项卡。首先,我尝试了 TChromiumOSR,但在其中看不到 flash,如果我单击页面按钮打开一个弹出窗口并最大化 flash,则可以正常工作。所以它看起来不像是闪光灯的问题,而是帧或某事的问题。无论如何是不行的。
然后我尝试了 TChromium,一切正常,但我不知道如何在不切换选项卡的情况下获取非活动 TTabSheet 上的控件的屏幕截图。
使用最新的 dcef3 中继
有任何想法吗?谢谢
编辑:事实证明,在 OSR 中看不到闪存是一个旧的铬错误。如果嵌入代码将“wmode”设置为“透明”以外的其他内容,它实际上正在播放但不可见。我已经设法通过 js 更改了该属性。要真正看到变化,需要从 DOM 中删除 flash 对象并再次添加:
chr1.browser.GetFrame(str[i]).ExecuteJavaScript('document.getElementsByName("wmode")[0].value="transparent";', '', 0);
chr1.browser.GetFrame(str[i]).ExecuteJavaScript('document.getElementsByName("wmode")[1].value="transparent";', '', 0);
chr1.browser.GetFrame(str[i]).ExecuteJavaScript('var wtf = document.getElementById("gameApp2");', '', 0);
chr1.browser.GetFrame(str[i]).ExecuteJavaScript('document.getElementById("gameApp2").remove();', '', 0);
chr1.browser.GetFrame(str[i]).ExecuteJavaScript('document.body.appendChild(wtf);', '', 0);