Как я могу вставить текст из элемента управления Edit в любое окно, где находится указатель мыши, без использования буфера обмена и/или дескриптора окна.
Я использую Делфи 7.
Как я могу вставить текст из элемента управления Edit в любое окно, где находится указатель мыши, без использования буфера обмена и/или дескриптора окна.
Я использую Делфи 7.
GetCursorPos, чтобы узнать, где находится курсор .WindowFromPoint, чтобы найти окно под курсором .EM_REPLACESEL, чтобы заменить выделение это окно. Если ничего не выделено, текст будет вставлен в каретку.Примечание. Будьте готовы к тому, что это чаще приведет к неудаче, чем к успеху. Многие приложения не используют элементы оконного редактирования. Чтобы найти более надежное решение, обратитесь к автоматизации пользовательского интерфейса.
Вы просили какой-то код. Вот как это будет выглядеть:
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)));
Если окно под курсором не является окном редактирования, это, вероятно, будет безобидным.
code ч:DWORD; ПолучитьКурсорПос(пт); ч: = WindowFromPoint (pt); надеюсь я на правильном пути?
- person Yurios; 13.10.2011