-
Здравствуйте! Мне нужно написать программу, которая вставляла мой текст, в текстовое поле другой программы и программно нажимала на кнопку (короче посылала сообщения в чат). Скажите как мне это реализовать, если неизвестно на каком языке написан этот "чат".
-
SendMessage + F1
-
> если неизвестно на каком языке написан этот "чат".
И молитесь, чтобы не на Java
-
> [1] Eraser © (02.08.07 12:48)
Угу. Только до того FindWindow(EX). Екзампл подкинуть?
-
Спасибо, за отзывчивость. Программа написана или на Delphi или на С++. FindWindow() и FindWindowEx использовал, но можно было бы и попожробнее... Екзампл кидай на почту :-)
-
вставляем текст SendMessage(Handle, WM_SETTEXT, 0, Integer(PChar('TEXT'))); нажимаем на кнопку SendMessage(Handle, BM_CLICK, 0, 0); Флаг вам в руки
-
> Екзампл кидай на почту :-)
Незачем. Екзампл в моем понимании это не прога, а кусок кода, хоть порой и довольно значительный... Вощем вот:
var F:HWND; ... F:=FindWindow('BUTTON', 'Типа_текст_на_кнопе'); // Нюф-нюф-нюф! :) Ищем... SendMessage(F, WM_COMMAND, 0, F); // Нажимаем кнопу!!!
Впрочем, в предпоследнем параме (нуле) в Сенд-е я не уверен. Покури хелп по WM_COMMAND.
-
> SendMessage(F, WM_COMMAND, 0, F); // Нажимаем кнопу!!!
Упс. Не то. SendMessage(F, WM_LBUTTONDOWN, 0, F); SendMessage(F, WM_LBUTTONUP, 0, F);
Походу так...
-
Друзья :-) спасибо большое. Ща напишу бота для рекламы в городском чате :-) Буду поднимать свое благосостояние :-) Пака!
-
> спасибо большое.
И нам исходничок кинь как оплату за труды ;)))
-
Ага, дам исходник, когда закончу. Скажите еще, пожалуйста, если не по кнопке отправляется сообщение, как симитировать нажатие Ентер'а в чате?
-
А, еще... как отыскать нужное мне текстовое поле? :)))
-
> memphis007 © (02.08.07 20:23) [10]
> Ага, дам исходник, когда закончу. Скажите еще, пожалуйста, > если не по кнопке отправляется сообщение, как симитировать
> А, еще... как отыскать нужное мне текстовое поле? :)))
Утром - деньги, вечером - стулья.
-- Regards, LVT.
-
Малнько подправил текст: SendMessage(f, WM_LBUTTONDOWN, MK_LBUTTON, 0);
SendMessage(f, WM_LBUTTONUP, MK_LBUTTON, 0);
-
> Утром - деньги, вечером - стулья
:))) Пока и денег нету :)))
-
> Dib@zol © (02.08.07 16:06) [9]
> И нам исходничок кинь как оплату за труды ;)))
Исходнее - вам, а оплату - нам.
-- Regards, LVT.
-
> memphis007 © (02.08.07 21:05) [14]
> > Утром - деньги, вечером - стулья > > :))) Пока и денег нету :)))
Нет денег - нет стульев.
-- Regards, LVT.
-
> Нет денег - нет стульев.
- Мама, мама, дай мне конфетку! - Возьми, доченька - Ну ведь она же на столе! - Ну так возьми со стола! - Но у меня ведь нет ножек! - Нет ножек - нет конфетки.
-
> [17] Инс © (02.08.07 21:16)
Садюга...
-
Вобщем, все идет своим чередом, только вот какая проблема возникла... Я посмотрел иерархию нужной мне проги (в которую я буду вставлять текст), дак вот, чтобы добраться до нужного мне контрола нада через кучу парентов пройти... Проблема: FindWindowEx находит первый хэндл (по классу), а тама два контрола с одинаковыми классами без каких либо других отличительных знаков...
Как мне получить хендл второго контрола?
-
> memphis007 © (02.08.07 22:33) [19]
> FindWindowEx находит первый хэндл (по классу), а тама два > контрола с одинаковыми классами без каких либо других отличительных
Иногда контролам присваивают идентификаторы, которые можно считать путем GetDlgCtrlID. Однако, в общем случае, для идентификации контролов придется удовлетворяться их z-order, например, порядком их нахождения FWE, или их координатами на паренте. {Конечно, в случае, если эти характеристики воспроизводимы, т.е. их порядок или координаты не меняются при каждом запуске или в ходе работы}.
-- Regards, LVT.
-
Удалено модератором
-
Удалено модератором
-
Удалено модератором
|