- Позвоните
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)));
Если окно под курсором не является окном редактирования, это, вероятно, будет доброкачественным.