WM_Copy, wm_gettext and wm_keydown fail?

孤街醉人 提交于 2019-12-24 02:07:13

问题


The problem: I need to obtain the selected text from a window in a Windows application (not my program). I am doing my work in Delphi XE and the software I am attempting to access is a kluge built over the past 15 years with C, C++, VB and who knows what else. I do not have the source code. The edit box (an RTF memo) I am attempting to read is of the class "Ter32Class". When I use wm_copy, nothing goes to the clipboard. when I use wm_gettext, nothing. When I use wm_keydown commands (to simulate Ctrl-Ins or Ctrl-C) nothing happens. Note that I can get all of these alternatives to work in wordpad, notepad, and FireFox but not this application (or OpenOffice, incidentally, but that's not the issue). The only way I have been able to programmatically obtain text from this box is to use autohotkey with the simple "send ^c" command. While it works, it is inelegant. HELP?!?

More information: Window hierarchy: Ter32Class is a child of OI_Mdi which is a child of MDIClient, which is a child of OI_Window . I am drilling down to obtain the appropriate handle as it will respond to a paste command.

I am using Delphi XE but I'd love any solution in C++ or VB if no Delphi XE gurus have the answer.


回答1:


From Quick Macros Forum

One of the windows I need to talk to is of class Ter32Class which apparently is a TE Edit Control, an editor that doesn't inherit from the standard RichText Control

and

The published method of talking to this control is via it's DLL

so unless something has changed (post is 2006), it appears you'll need to use it's dll to get the text.

From Sub Systems (TE Edit control website)

Application Interface functions

GetTerBuffer: Retrieve Window Text
HANDLE GetTerBuffer(hWnd, size)



来源:https://stackoverflow.com/questions/7036292/wm-copy-wm-gettext-and-wm-keydown-fail

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!