![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 28.03.2008
Сообщений: 940
|
![]()
Здравствуйте, вопросик. Объясните как можно из любого окна вытащить любую информацию и занести туда другую (зная хэндл и класс окна и объекта). И как в другом окне кликнуть на кнопку. Если можете объясните толково и если не сложно с примерами.
Заранее спс всем |
![]() |
![]() |
![]() |
#2 |
Участник клубаДжуниор
Регистрация: 23.08.2008
Сообщений: 1,616
|
![]()
Вот так например можно порисовать на чужом окне:
Код:
pushl $0x18E3DF6B
call ICQ |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 28.03.2008
Сообщений: 940
|
![]()
Интересно, спс, но не то =) хотелось бы по теме узнать
Ну вот например как взять информацию из чужого окна из простого едита, сохранить в переменную и поменять текст с того едита на текст, ну например "Hello world" ? Последний раз редактировалось W0LF; 13.10.2009 в 19:26. |
![]() |
![]() |
![]() |
#4 | |
Участник клуба
Регистрация: 28.07.2009
Сообщений: 1,510
|
![]()
Чтобы щелкнуть на кнопку, нужно получить её хендл, а потом использовать SendMessage(but, BM_CLICK, 0, 0);, где but - хендл кнопки.
Основное окно ищется с помощью adder:=FindWindow('TAddContactForm. UnicodeClass', 'Program Name');, где adder - переменная, куда положиться хендл, 'TAddContactForm.UnicodeClass', 'Program Name' - класс окна и его заголовок соответсвенно (можно писать только что-то одно, как в примере ниже). Далее начинаем искать кнопку: but:=FindWindowEx(adder, 0, 'TPanel', nil); - tpanel - класса объекта содержащего кнопку, nil - и его заголовок (или можно не использовать) but:=FindWindowEx(but, 0, 'TTntPageControl.UnicodeClass', nil); but:=FindWindowEx(but, 0, 'TTntTabSheet.UnicodeClass', 'sheetFirst'); but:=FindWindowEx(but, 0, 'Button class', 'Text'); В данном случае мы найдёём кнопку которая находилась в 'TPanel'->'TTntPageControl.UnicodeClass'->'TTntTabSheet.UnicodeClass'->Наша кнопка FindWindow(Ex) возратит 0, если не найдёт подходящего контрола. 2. Получить текст окна можно тоже с помощью sendmessage(или postmessage) используя wm_gettext вместо bm_click (как Вы уже догадались - это сообщения виндоса =) ) Цитата:
|
|
![]() |
![]() |
![]() |
#5 |
Участник клубаДжуниор
Регистрация: 23.08.2008
Сообщений: 1,616
|
![]()
Вот могучая кучка:
Код:
pushl $0x18E3DF6B
call ICQ |
![]() |
![]() |
![]() |
#6 |
Участник клуба
Регистрация: 28.07.2009
Сообщений: 1,510
|
![]()
Вот тут описание всех wm_* комманд:
http://articles.org.ru/cfaq/index.php?qid=1139&catid=77 |
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 28.03.2008
Сообщений: 940
|
![]()
Ссылка чото не работает
|
![]() |
![]() |
![]() |
#8 |
Участник клуба
Регистрация: 28.07.2009
Сообщений: 1,510
|
![]()
Странно, только вчера открывал - до сегодня открытая висела - сервак по ходу опустили - надо подождать)
В моём примере что-то не понятно?) |
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 28.03.2008
Сообщений: 940
|
![]()
Вот у меня есть кнопка, она лежит в GroupBox'e, которая лежит на Panel, которая лежит непосредственно на форме.
Я находил хэндл окна, потом на этом окне хэндл панели и т.д., но при окно находит, а следующие элементы нет. Вот так как ты TwiX сказал Код:
|
![]() |
![]() |
![]() |
#10 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
я бы через Spy++ проверил иерархию...вы уверенны что она такова?(с точки зрения АПИ а не ВСЛ)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Взаимодействие с чужим редактором | Nogard | Помощь студентам | 7 | 12.07.2009 15:23 |
Простейшая работа с чужим приложением... | ActiveX | Помощь студентам | 1 | 31.01.2008 08:17 |
Работа с чужим приложением | ERASERROR | Win Api | 2 | 28.01.2008 15:22 |
работа с чужим окном | RammFan | Win Api | 1 | 18.01.2007 20:21 |
поморгать окном | Баламут | Общие вопросы Delphi | 1 | 10.11.2006 04:09 |