Здравствуйте, sokolprog, Вы писали:
S>А блокноту не один фиг, какую клавишу ты ему посылаешь!?
S>Сообщение нужно посылать текстовому полю блокнота!
S>Для вставки текста в чужой TextBox, можно вызывать, например EM_REPLACESEL, WM_SETTEXT:
S>Пример: текст будет вставлен туда, где находится каретка
S>::SendMessage(hwndEdit, EM_REPLACESEL, /*Undo?*/FALSE,(LPARAM)"MyText");
Понял. Спасибо.
Очень не хотел спрашивать, но действительно не понимаю почему не работает этот код для поиска контрола в котором находится каретка:
Var
wh: HWND;
TInfo: TGUITHREADINFO;
PID: Integer;
Begin
wh := FindWindow('Notepad', nil); { Окно находит }
GetWindowThreadProcessId(wh, @PID); { PID процесса получает }
GetGUIThreadInfo(PID, TInfo); { Вот тут какая-то муть, структура TInfo заполняется "не правильно" }
SendMessage(TInfo.hwndCaret, WM_SETTEXT, 0, Integer(PChar('Test!'))){ => текст никуда не пишется : ( }
End;
Или я выбрал не правильный способ для узнавания хендла контрола с кареткой?