- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
是否可以使用 Acrobat.MenuItemExecute('Copy');
命令AVDoc.OpenInWindowEx(FFilename, Panel1.handle, 0, True, 0,0, 2, 0, 0, 0);
在 Delphi 7 和 Acrobat XI Pro 中?
如果您帮我举一个例子,我会很高兴。
最佳答案
我认为这个问题的答案可能是“否”,因为在调用 Acrobat.MenuItemExecute('Copy') 之前,有必要在包含要复制的文本的窗口上调用 BringToFront,否则调用 MenuItemExecute('即使文档托管在 Acrobat 自己的窗口之一中,复制')也会失败。当文档窗口托管在您的应用程序而不是 Acrobat 中时,我不知道如何成功地做到这一点。
但是,您可以在问题中添加一些内容,这可能有助于获得更好的答案。 [...]
更新请忽略我在此答案的早期版本中的评论,即我无法重现无法在使用 OpenInWindowEx 打开的窗口中选择文本的行为。事实上,我现在可以很好地选择文本,之前我忽略的是我已将 TPanel 的 Enabled
属性设置为 False
。
不幸的是,我仍然无法成功调用 Acrobat.MenuItemExecute('Copy'),并且我开始认为无法在托管窗口中执行此操作。我还没有找到明确的列表,但 Google 发现的 Adobe 工作人员的各种评论清楚地表明,许多 MenuItemExecute 字符串在使用 OpenInWindowEx 时不起作用。
但是,这可能不是将所选文本检索回 Delphi 应用程序的唯一方法。
如果您使用 WinSpy
或 Window Detective
等工具查看托管窗口,您将看到面板窗口中包含一整套 Acrobat 窗口,包括一个带有窗口文本“AVPageView”的 AVL_AVView,我想它是显示 PDF 文本的实际窗口。
我认为可能解决方案的关键是您的观察,我已经证实了这一点,即在窗口中按 Ctrl-C 会将文本复制到剪贴板。到目前为止,我还无法使用 keybd_event 调用、各种 Delphi“SendKeys”例程以及向 AVPageView 窗口发送 WM_COPY 消息等技术来实现等效的代码。我确信这一定是可能的,但我还没有找到方法。
关于delphi - 如何将 MenuItemExecute() 与 AVDoc.OpenInWindowEx() 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37727429/
我是一名优秀的程序员,十分优秀!