Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.10.14;
Скачать: CL | DM;

Вниз

Работа с чужими окнами...   Найти похожие ветки 

 
MDSEnterprises ©   (2007-09-20 16:36) [0]

Как мне узнать имена всех TEdit компонентов на чужой форме, получить их индексы и написать в них свой текст?
А именно в 1-й Login, а во 2-й password.


 
DVM ©   (2007-09-20 16:57) [1]


> получить их индексы

че за индексы такие?


 
MDSEnterprises ©   (2007-09-20 17:11) [2]

Есть индекс(идентификатор) окна получаемый функцией FindWindow(), который присваивается переменной типа hWnd. У компонентов есть такие же, вот и нужно их найти...


 
DVM ©   (2007-09-20 17:20) [3]


> У компонентов есть такие же, вот и нужно их найти...

у компонентов их нет, они у окон есть.

EnumChildWindows() или FindWindowEx


 
homm ©   (2007-09-20 17:22) [4]

> [0] MDSEnterprises ©   (20.09.07 16:36)
> Как мне узнать имена всех TEdit

А ты уже выяснил, что там TEdit ?


 
homm ©   (2007-09-20 17:22) [5]

> [0] MDSEnterprises ©   (20.09.07 16:36)
> получить их индексы

Что за индексы? И зачем тебе имена?


 
DVM ©   (2007-09-20 17:26) [6]


> А ты уже выяснил, что там TEdit ?

конечно он выяснил все давно, вот программа на джаве, вот тэдиты...


 
MDSEnterprises ©   (2007-09-20 17:40) [7]

>А ты уже выяснил, что там TEdit ?
Нет. Но  не трудно догадаться.

>Что за индексы? И зачем тебе имена?
Я конечно не профи, но в Инспекторе Объектов есть поле Name, в котором написано имя компонента (Edit1 по умолчанию), бывает что его меняют...
Как я понял мне нужно узнать его имя чтобы записать туда свой текст


 
Однокамушкин   (2007-09-20 22:02) [8]


> MDSEnterprises ©   (20.09.07 17:11) [2]
> Есть индекс(идентификатор) окна получаемый функцией FindWindow(),
>  

Это ж надо было так дескриптор обозвать... что его называют хандлером - слышал, рукояткой - тоже слышал, но вот индексом - это впервые встречаю...

> >А ты уже выяснил, что там TEdit ?
> Нет. Но  не трудно догадаться.

Вовсе не факт... есть окна, которые выглядят так же, как TEdit, а оконный класс у них другой... системный EDIT, например... вообще, TEdit встречается только в программах, написанных на дельфях или на билдере, а во всех остальных программах TEdit вряд ли найдётся...

> в Инспекторе Объектов есть поле Name, в котором написано
> имя компонента (Edit1 по умолчанию), бывает что его меняют.
> ..
> Как я понял мне нужно узнать его имя чтобы записать туда
> свой текст

Во-первых, если программа не на дельфях и не на билдере, то никакого имени там не будет... во-вторых, чтобы поменять текст в EDIT-е или в TEdit-е, достаточно дескриптора и функции SetWindowText или сообщения WM_SETTEXT, никакие "имена" не нужны...


 
Черный Шаман   (2007-09-21 00:50) [9]


> DVM ©   (20.09.07 17:26) [6]
>
>
> > А ты уже выяснил, что там TEdit ?
>
> конечно он выяснил все давно, вот программа на джаве, вот
> тэдиты...


Пан разбирается на извращениях :) Ну почему же, при использовании SWT там могут быть и окна.


 
Германн ©   (2007-09-21 01:41) [10]


> Как мне узнать имена всех TEdit компонентов на чужой форме,
>  получить их индексы и написать в них свой текст?
> А именно в 1-й Login, а во 2-й password.
>

Ну да, ну да. Именно "написать в них свой текст"!

Интересно какой ник придумает автор, когда задаст вопрос о "как прочитать"?
:-)


 
MDSEnterprises ©   (2007-09-21 20:22) [11]

>Во-первых, если программа не на дельфях и не на билдере, то никакого имени >там не будет... во-вторых, чтобы поменять текст в EDIT-е или в TEdit-е, >достаточно дескриптора и функции SetWindowText или сообщения >WM_SETTEXT, никакие "имена" не нужны...

Это понятно. Спасибо...
Но возникает вопрос как узнать в кокой EDIT или TEdit будет записываться текст?


 
MDSEnterprises ©   (2007-09-21 20:50) [12]

Я щас попробовал и у меня меняет только заголовок найденной проги, с помощью 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;


 
Сергей М. ©   (2007-09-21 20:56) [13]


> как узнать в кокой EDIT или TEdit будет записываться текст?


Это у тебя надо спросить, кому уж как не тебе это известно лучше чем другим)


>  в 1-й Login, а во 2-й password.


Уж не об Интернет-браузере ли ведешь речь ?
И уж не спамить ли вознамерился ?)


 
MDSEnterprises ©   (2007-09-21 21:07) [14]

>Уж не об Интернет-браузере ли ведешь речь ?
Нет, не о браузере))

>И уж не спамить ли вознамерился ?)
Мне что делать больше нечего?


 
MDSEnterprises ©   (2007-09-21 21:11) [15]

Предположим нам известно куда будет вводиться тест. Дальше что?
И можете обьяснить для чего используются wparam и lparam?


 
Сергей М. ©   (2007-09-21 21:14) [16]


> нам известно куда будет вводиться тест. Дальше что?


Дальше выясняешь, окно ли это, прежде чем ломиться в него вышеупомянутыми средствами.


>  для чего используются wparam и lparam?


Справку ты, надо понимать, проштудировал и ничерта в ней не понял ?


 
MDSEnterprises ©   (2007-09-21 21:28) [17]

>Справку ты, надо понимать, проштудировал и ничерта в ней не понял ?
Я искал неправильно(
Теперь нашел, это первый и второй параметры...

additional - как это слово переводится(у меня с английским плоховато()


 
engine ©   (2007-09-21 21:30) [18]

> additional — как это слово переводится(у меня с английским
> плоховато()

дополнительный


 
engine ©   (2007-09-21 21:30) [19]

> (у меня с английским плоховато()

и не только с английским :(


 
MDSEnterprises ©   (2007-09-21 21:36) [20]

>и не только с английским :(
с русским и Delphi:(


 
Сергей М. ©   (2007-09-21 21:39) [21]


> с русским и Delphi:(


ну если при этом еще и с английским, то либо переквалифицируйся в управдомы (как опция - в простые топорники), либо мыль веревку)


 
MDSEnterprises ©   (2007-09-21 21:43) [22]

Так я же начинающий в Delphi сижу примерно месяца 3-4


 
Сергей М. ©   (2007-09-21 21:54) [23]


>  в Delphi сижу примерно месяца 3-4


При вынесении приговора они, думаю, зачтутся


 
MDSEnterprises ©   (2007-09-21 22:01) [24]

Мне тут показалось, мы немного не в тему)))


 
Сергей М. ©   (2007-09-21 22:11) [25]


> Мне тут показалось


Уверяю тебя - тебе показалось.

Сидишь ? Сиди сколько тебе отмеряно)


 
Сергей М. ©   (2007-09-21 22:12) [26]


> тебе показалось


Тебе НЕ показалось - ты "сидишь"


 
MDSEnterprises ©   (2007-09-21 23:20) [27]

Так, ладно...
>Дальше выясняешь, окно ли это, прежде чем ломиться в него вышеупомянутыми средствами.

Как выяснить окно это или нет.
В вышеописанная прога меняет заголовок окна с "program" на "Test", это уже проверено. Такой "метод тыка" подойдет, для распознания?


 
homm ©   (2007-09-21 23:33) [28]

> [27] MDSEnterprises ©   (21.09.07 23:20)

найди прогу spy++. она в составе Visula Studio есть.


 
Anatoly Podgoretsky ©   (2007-09-22 12:08) [29]


> Так я же начинающий в Delphi сижу примерно месяца 3-4

И ты это называешь начинающий, за это время можно изучить 3-4 языка. А если ты про состояния души, то некоторые начинающими остаются и через 3-4 года.


 
MDSEnterprises ©   (2007-09-22 18:06) [30]


> за это время можно изучить 3-4 языка

А я хочу не изучить, а выучить!
К тому же я не каждый день сижу, да и учебника у меня нету((((


 
Однокамушкин   (2007-09-22 20:29) [31]


> homm ©   (21.09.07 23:33) [28]
> > [27] MDSEnterprises ©   (21.09.07 23:20)
>
> найди прогу spy++. она в составе Visula Studio есть.

А в составе дельфи есть WinSight32, который тоже подходит для этих целей


 
Однокамушкин   (2007-09-22 21:39) [32]


> MDSEnterprises ©   (22.09.07 18:06) [30]
>
> > за это время можно изучить 3-4 языка
>
> А я хочу не изучить, а выучить!
> К тому же я не каждый день сижу, да и учебника у меня нету((((

Задачу вы выбрали себе, мягко говоря, не для начинающего... Чтобы это сделать, надо довольно твёрдо знать, что такое окно с точки зрения системы, что такое визуальный компонент в дельфи и чем он отличается от окна, знать про оконные классы Windows и понимать, что никакого отношения к классам Delphi они не имеют, и ещё много чего... Не реализуете вы эту задачу, если сначала не потренируетесь на нескольких более простых

Для начала могу предложить такую задачу: с помощью функций EnumWindows и EnumChildWindows найти все окна, открытые в системе, и отобразить их в виде дерева, и чтобы для каждого окна выводилось его название и оконный класс... конечно, придётся немного помучиться с тем, что такое callback-функции и как получать строки через системные функции (string-а там нет, а Pchar требует ручной работы с памятью), зато идеологически это проще и в голове лучше укладывается... А потом уже вы эту свою задачу как орешек раскусите, потому что будете не вслепую тыкаться, а понимать, что к чему



Страницы: 1 вся ветка

Текущий архив: 2007.10.14;
Скачать: CL | DM;

Наверх




Память: 0.55 MB
Время: 0.027 c
2-1189746770
APXi
2007-09-14 09:12
2007.10.14
Как определить какая форма активна, если все формы внедрены?


15-1189735938
Slider007
2007-09-14 06:12
2007.10.14
С днем рождения ! 14 сентября 2007 пятница


2-1190044966
ANTPro
2007-09-17 20:02
2007.10.14
procedure RotateX


15-1189525325
Kerk
2007-09-11 19:42
2007.10.14
Почему мужчины более коммуникабельны?


1-1186038494
DevilDevil
2007-08-02 11:08
2007.10.14
Указатель на виртуальную функцию. Помогите.