如何将Edit控件中的文本插入鼠标指针所在的任何窗口,而不使用剪贴板和/或窗口句柄。
我正在使用Delphi 7。
答案 0 :(得分:6)
GetCursorPos
以找出光标所在的位置。WindowFromPoint
查找光标下的窗口。EM_REPLACESEL
消息以替换该窗口中的选择。如果未选择任何内容,则文本将插入插入符号。注意:为此做好准备比成功更常见。许多应用程序不使用窗口编辑控件。要获得更强大的解决方案,您应该查看UI Automation。
你问了一些代码。这就是它的样子:
var
Pos: TPoint;
Target: HWND;
...
if not GetCursorPos(Pos) then
RaiseLastOSError;
Target := WindowFromPoint(Pos);
if Target<>0 then
SendMessage(Target, EM_REPLACESEL, ord(True), LPARAM(PChar(Edit1.Text)));
如果光标下方的窗口不是编辑窗口,这可能是良性的。