Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: WinAPI и системное программирование > Не могу вставить текст в TRichEdit чужой проги


Автор: MadCoder 17.6.2008, 16:17
Здравствуйте!
Никак не получается вставить текст в поле TRichEdit чужого приложения. Не могу даже хэндл RichEdit'а найти. Я думаю, дело в том, что он открывается в MDI окне и искать его надо как-то по-другому.

Вот код:
Код

var
  h : THandle;
begin
// Находим хэндл Кроноса
h := FindWindow(nil, 'Банк документов');
// Если не найден, запускаем
if h = 0 then
  begin
  WinExec(PChar(Edit1.Text), SW_SHOW);

  h := FindWindow(nil, 'Банк документов');
  end;
   // Открываем окно поиск
   SendMessage(h, WM_COMMAND, 32827, 0);
end;


Собственно, скрин, куда что вставить нужно:
http://ipicture.ru/Gallery/Viewfull/2603697.html

Подскажите, люди добрые smile 

Автор: MadCoder 17.6.2008, 16:50
Нашел решение сам:
Код

// Открываем окно поиск
SendMessage(h, WM_COMMAND, 32827, 0);
// Ищем дальше
h2:=FindWindowEx(h, 0, 'MDIClient', nil);
 h3:=FindWindowEx(h2, 0, 'AfxFrameOrView42s', nil);
 h4:=FindWindowEx(h3, 0, 'AfxMDIFrame42s', nil);
 h5:=FindWindowEx(h4, 0, 'AfxMDIFrame42s', nil);
 h6:=FindWindowEx(h5, 0, 'AfxFrameOrView42s', nil);
 h7:=FindWindowEx(h6, 0, 'RICHEDIT', nil);
 if h7<>0 then
 SendMessage(h7, WM_SETTEXT, 0, LParam(PChar('Пример запроса')))
 else
 ShowMessage('что не сработало');


Спасибо мне за внимание smile .

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)