WM_Copy,wm_gettext和wm_keydown失败了吗?

时间:2011-08-12 06:19:01

标签: delphi delphi-xe keydown sendmessage autohotkey

问题:我需要从Windows应用程序(而不是我的程序)的窗口中获取所选文本。我正在使用Delphi XE工作,我试图访问的软件是过去15年用C,C ++,VB构建的软件,谁知道还有什么。我没有源代码。我试图阅读的编辑框(RTF备忘录)属于“Ter32Class”类。当我使用 wm_copy 时,没有任何内容会转到剪贴板。当我使用 wm_gettext 时,什么都没有。当我使用 wm_keydown 命令时(模拟 Ctrl - Ins Ctrl - C )没有任何反应。请注意,我可以使用所有这些替代方法在wordpad,notepad和FireFox中工作,但不能使用此应用程序(或者OpenOffice,顺便说一下,但这不是问题)。我能够以编程方式从此框中获取文本的唯一方法是使用autohotkey和简单的“send ^c”命令。虽然它有效,但它不够优雅。帮助?!?

更多信息:窗口层次结构:Ter32Class是OI_Mdi的子级,它是MDIClient的子级,它是OI_Window的子级。我正在向下钻取以获得适当的句柄,因为它将响应粘贴命令。

我正在使用Delphi XE,但如果没有Delphi XE大师有答案,我会喜欢C ++或VB中的任何解决方案。

1 个答案:

答案 0 :(得分:1)

来自Quick Macros Forum

  

我需要与之交谈的一个窗口是Ter32Class类   显然是一个TE编辑控件,一个不继承的编辑器   标准的RichText控件

  

与此控件交谈的已发布方法是通过它的DLL

所以除非某些内容发生了变化(帖子是2006),否则你需要使用它的dll来获取文字。

From Sub Systems (TE Edit control website)

  

应用程序界面功能

     

GetTerBuffer:检索窗口文本
         处理GetTerBuffer(hWnd,size)