将编辑中的文本插入鼠标指针所在的任何窗口

Yur*_*ios 3 delphi text insert

我怎样才能插入编辑控件到鼠标指针位置是任何窗口中的文本,而无需使用剪贴板和/或窗口句柄.

我使用的是Delphi 7.

Dav*_*nan 6

  1. 调用GetCursorPos以找出光标所在的位置.
  2. 调用WindowFromPoint找到光标下的窗口.
  3. 发送EM_REPLACESEL消息以替换该窗口中的选择.如果未选择任何内容,则文本将插入插入符号.

注意:为此做好准备会比成功更常见.许多应用程序不使用窗口编辑控件.要获得更强大的解决方案,您应该了解UI自动化.


你问了一些代码.这是它的样子:

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)));
Run Code Online (Sandbox Code Playgroud)

如果光标下面的窗口不是编辑窗口,这可能是良性的.