
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.224.2.133] |
![]() |
|
Сообщ.
#1
,
|
|
|
Всем привет.
Возникла проблема с получением данных со сторонней программы с определенного поля ![]() У меня получилось получить хендл окна и поля которое меня интересует но вот значение я получить не могу. Как это сделать? ![]() ![]() procedure TForm1.Button2Click(Sender: TObject); var hOldCaption: string; ParentWnd, ChildWnd: HWND; HoldString: String; begin hOldCaption := 'Randon_V1'; ParentWnd := FindWindow(nil, PChar(hOldCaption)); Label1.Caption := IntToHex(ParentWnd, 8); if (ParentWnd = 0) then begin ShowMessage('Окно не найдено'); exit; end; ChildWnd := FindWindowEx(ParentWnd, 0, 'TEdit', nil); Label2.Caption := IntToHex(ChildWnd, 8); end; end. Добавлено Нашел! Работает! ![]() ![]() procedure TForm1.Button2Click(Sender: TObject); var hOldCaption: string; ParentWnd, ChildWnd: HWND; HoldString: String; str: string; begin hOldCaption := 'Randon_V1'; ParentWnd := FindWindow(nil, PChar(hOldCaption)); Label1.Caption := IntToHex(ParentWnd, 8); if (ParentWnd = 0) then begin ShowMessage('Окно не найдено'); exit; end; ChildWnd := FindWindowEx(ParentWnd, 0, 'TEdit', nil); Label2.Caption := IntToHex(ChildWnd, 8); if ChildWnd <> 0 then begin SetLength(str, SendMessage(ChildWnd, WM_GETTEXTLENGTH, 0, 0) + 1); SendMessage(ChildWnd, WM_GETTEXT, length(str), Integer(PChar(str))); Label3.Caption := str; end else ShowMessage('!!!'); end; Но теперь другая проблема... Эта программа была тестовая, для себя что бы понять что и до чего. Та программа которая меня интересует имеет несколько Edit-тов и Label-ов. Как быть тогда? |
![]() |
Сообщ.
#2
,
|
|
Цитата STest69 @ сколько Edit-тов и Label-ов. Как быть тогда? А по той-же схеме нельзя? У них должны быть имена разные |
Сообщ.
#3
,
|
|
|
Внесу немножечко сумятицы: это работает ровно до тех пор пока используются классические HWND-based контролы. Как только начнётся owner-draw, станет в разы сложнее. Ну а windowless-контрол поставит в этом вопросе жирную точку.
|
Сообщ.
#4
,
|
|
|
Получилось почитать значения которые я искал но есть другой вопрос - как считать с памяти эти значения зная pid программы и нужный Handle?
|