Текущий архив: 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.03 c