![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Работа с чужими окнами... [D7, WinXP]
MDSEnterprises © (2007-09-20 16:36:00)Как мне узнать имена всех TEdit компонентов на чужой форме, получить их индексы и написать в них свой текст?
А именно в 1-й Login, а во 2-й password.
MDSEnterprises (2007-09-21 20:50:00) [21]Я щас попробовал и у меня меняет только заголовок найденной проги, с помощью WM_SETTEXT
Вот текст
procedure TForm1.Button1Click(Sender: TObject);
var
q: hWnd;
begin
q := FindWindow(nil, 'program');
if q = 0 then exit;
SendMessage(q, WM_SETTEXT, 0, lParam(LPCTSTR('Test')));
end;
MDSEnterprises (2007-09-21 20:22:00) [22]>Во-первых, если программа не на дельфях и не на билдере, то никакого имени >там не будет... во-вторых, чтобы поменять текст в EDIT-е или в TEdit-е, >достаточно дескриптора и функции SetWindowText или сообщения >WM_SETTEXT, никакие "имена" не нужны...
Это понятно. Спасибо...
Но возникает вопрос как узнать в кокой EDIT или TEdit будет записываться текст?
Германн (2007-09-21 01:41:00) [23]
> Как мне узнать имена всех TEdit компонентов на чужой форме,
> получить их индексы и написать в них свой текст?
> А именно в 1-й Login, а во 2-й password.
>
Ну да, ну да. Именно "написать в них свой текст"!
Интересно какой ник придумает автор, когда задаст вопрос о "как прочитать"?
:-)
Черный Шаман (2007-09-21 00:50:00) [24]
> DVM © (20.09.07 17:26) [6]
>
>
> > А ты уже выяснил, что там TEdit ?
>
> конечно он выяснил все давно, вот программа на джаве, вот
> тэдиты...
Пан разбирается на извращениях :) Ну почему же, при использовании SWT там могут быть и окна.
Однокамушкин (2007-09-20 22:02:00) [25]
> MDSEnterprises © (20.09.07 17:11) [2]
> Есть индекс(идентификатор) окна получаемый функцией FindWindow(),
>
Это ж надо было так дескриптор обозвать... что его называют хандлером - слышал, рукояткой - тоже слышал, но вот индексом - это впервые встречаю...
> >А ты уже выяснил, что там TEdit ?
> Нет. Но не трудно догадаться.
Вовсе не факт... есть окна, которые выглядят так же, как TEdit, а оконный класс у них другой... системный EDIT, например... вообще, TEdit встречается только в программах, написанных на дельфях или на билдере, а во всех остальных программах TEdit вряд ли найдётся...
> в Инспекторе Объектов есть поле Name, в котором написано
> имя компонента (Edit1 по умолчанию), бывает что его меняют.
> ..
> Как я понял мне нужно узнать его имя чтобы записать туда
> свой текст
Во-первых, если программа не на дельфях и не на билдере, то никакого имени там не будет... во-вторых, чтобы поменять текст в EDIT-е или в TEdit-е, достаточно дескриптора и функции SetWindowText или сообщения WM_SETTEXT, никакие "имена" не нужны...
MDSEnterprises (2007-09-20 17:40:00) [26]>А ты уже выяснил, что там TEdit ?
Нет. Но не трудно догадаться.
>Что за индексы? И зачем тебе имена?
Я конечно не профи, но в Инспекторе Объектов есть поле Name, в котором написано имя компонента (Edit1 по умолчанию), бывает что его меняют...
Как я понял мне нужно узнать его имя чтобы записать туда свой текст
DVM (2007-09-20 17:26:00) [27]
> А ты уже выяснил, что там TEdit ?
конечно он выяснил все давно, вот программа на джаве, вот тэдиты...
homm (2007-09-20 17:22:00) [28]> [0] MDSEnterprises © (20.09.07 16:36)
> получить их индексы
Что за индексы? И зачем тебе имена?
homm (2007-09-20 17:22:00) [29]> [0] MDSEnterprises © (20.09.07 16:36)
> Как мне узнать имена всех TEdit
А ты уже выяснил, что там TEdit ?
DVM (2007-09-20 17:20:00) [30]
> У компонентов есть такие же, вот и нужно их найти...
у компонентов их нет, они у окон есть.
EnumChildWindows() или FindWindowEx
MDSEnterprises (2007-09-20 17:11:00) [31]Есть индекс(идентификатор) окна получаемый функцией FindWindow(), который присваивается переменной типа hWnd. У компонентов есть такие же, вот и нужно их найти...
DVM (2007-09-20 16:57:00) [32]
> получить их индексы
че за индексы такие?