Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
Software Developer
315 / 229 / 113
Регистрация: 03.05.2017
Сообщений: 1,330
1

Жмём по кнопках в чужом окне

24.02.2018, 01:25. Показов 778. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Мне нужно проделывать кое-какие действия с кнопкой чужого окна, а именно эмулировать нажатие левой клавиши мыши (то есть нажать на кнопку). Получаю дескриптор чужого окна. Тогда получаю дескриптор кнопки. Дескриптора получаются верные (проверял функцией MoveWindow, копка передвинулась с места). Кнопка не из стандартной коробки (явно что класс созданный и специально заточенный под кнопку).
Но когда я отсылаю ей
C++
1
2
PostMessage (hWnd, WM_LBUTTONDOWN, 0, 0);
PostMessage (hWnd, WM_LBUTTONUP, 0, 0);
то ожидаемого эффекта нету... Что же мне делать?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.02.2018, 01:25
Ответы с готовыми решениями:

Пропадают иконки на кнопках в диалоговом окне
Приветствую! использую вот такой код if QuestionDlg('Завершение работы программы...',...

Клик в чужом окне
Как можно реализовать множественный клик правой кнопкой мыши в чужом окне?

Рисование в чужом окне
Собственно, я понимаю как рисовать, мне больше интересно 2 момента: 1) Если я просто буду рисовать...

Рисование в чужом окне
Дано окно чужой программы. Требуется что-то на нем нарисовать. Скажем, дырку в том месте, куда...

9
28 / 27 / 11
Регистрация: 04.03.2010
Сообщений: 199
24.02.2018, 03:25 2
Цитата Сообщение от decrement Посмотреть сообщение
то ожидаемого эффекта нету... Что же мне делать?
Для этих целей используйте функцию SendInput
0
Software Developer
315 / 229 / 113
Регистрация: 03.05.2017
Сообщений: 1,330
24.02.2018, 11:32  [ТС] 3
Igor-84, я наверное не так как-то выразился в первом посте) мне нужно нажать/отослать сообщение именно кнопке, окно с кнопкой может даже быть в трее.
0
Эксперт С++
3574 / 2828 / 451
Регистрация: 03.05.2011
Сообщений: 5,193
Записей в блоге: 22
24.02.2018, 17:38 4
так у вас параметры нулевые (WPARAM/LPARAM), чего вы хотели этим кодом добиться не понятно?

и ещё
PostMessage асинхронно помещает сообщение в очередь.
SendMessage синхронно отправляет сообщение и ждёт результата.
0
Software Developer
315 / 229 / 113
Регистрация: 03.05.2017
Сообщений: 1,330
24.02.2018, 19:13  [ТС] 5
Цитата Сообщение от _lunar_ Посмотреть сообщение
PostMessage асинхронно помещает сообщение в очередь.
SendMessage синхронно отправляет сообщение и ждёт результата.
знаем такое
Цитата Сообщение от _lunar_ Посмотреть сообщение
так у вас параметры нулевые (WPARAM/LPARAM), чего вы хотели этим кодом добиться не понятно?
ну так когда я использовал
WPARAM = MK_LBUTTON
LPARAM = координаты (хотя координаты для этой задачи я думаю не важны)
то всё равно ничего не происходило
0
28 / 27 / 11
Регистрация: 04.03.2010
Сообщений: 199
24.02.2018, 19:25 6
Цитата Сообщение от decrement Посмотреть сообщение
то всё равно ничего не происходило
А целевое окно с кнопкой - видимое на экране или в свёрнутом состоянии?
Срабатывает ли отправка WM_LBUTTONDOWN - WM_LBUTTONUP при условии, что целевое окно видимо? Или не работает, если окно свёрнуто? Может там банальная проверка на видимость...
0
Software Developer
315 / 229 / 113
Регистрация: 03.05.2017
Сообщений: 1,330
24.02.2018, 19:44  [ТС] 7
Цитата Сообщение от Igor-84 Посмотреть сообщение
А целевое окно с кнопкой - видимое на экране или в свёрнутом состоянии?
Срабатывает ли отправка WM_LBUTTONDOWN - WM_LBUTTONUP при условии, что целевое окно видимо? Или не работает, если окно свёрнуто? Может там банальная проверка на видимость...
Делал всеми способами.. и когда свернутое, и когда развёрнутое.
0
28 / 27 / 11
Регистрация: 04.03.2010
Сообщений: 199
24.02.2018, 23:23 8
Учитывая то, что целевая кнопка - не стандартная, можно предположить, что это может быть и вовсе регион с цветной заливкой, а получаемый hwnd - какая-нибудь панель-подложка, и именно ей вы посылаете сообщения мыши.
А что, если отправлять сообщения о клике не конкретно кнопке, а родительскому окну, зная координаты кнопки? Если окно видимо, то здесь как раз очень хорошо подойдёт упомянутый выше SendInput(). А если окно свёрнуто, то посылать WM_LBUTTONDOWN : WM_LBUTTONUP родительскому окну, закладывая при этом координаты кнопки?
Да, кстати, а что говорит Spy++? Как он идентифицирует эту кнопку, какие сообщения она принимает?
0
2 / 2 / 0
Регистрация: 23.02.2018
Сообщений: 33
25.02.2018, 15:20 9
decrement, а зачем Вам нажимать на кнопки в чужом окне?
Вам сюда http://www.booksgid.com/progra... kera..html
Прямая ссылка http://i.booksgid.com/web/getbook/13651
Здесь всё изложено (найти окно, перевернуть рабочий стол)
0
_lunar_
25.02.2018, 18:14     Жмём по кнопках в чужом окне
  #10

Не по теме:

Цитата Сообщение от AndroidApp Посмотреть сообщение
Вам сюда
бестолковее книги в жизни не видел (а ещё название то какое громкое).
воды, пустого бессмысленного текста и конечно же сеть... мда

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.02.2018, 18:14

Рисование в чужом окне
всем привет как рисовать текст в чужом окне не используя своего окна и не имея его

Движение курсора в чужом окне
Доброго времени, подскажите, вот есть хендл окна, как организовать перемещение курсора в...

Нарисовать линию в чужом окне
Добрый день! С помощью WinAPI я нахожу id сторонней формы и дальше мне нужно нарисовать на ней...

Нажать на кнопку в чужом окне
Добрый день, подскажите, есть ли возможность получить доступ к контролам чужой формы? Т.е. есть...

Нажать кнопку в чужом окне
Есть программа Steam нужно в ней нажать на кнопку "Создать новый аккаунт" Пробовал разные...

Своя кнопка в чужом окне
Здравствуйте Господа!!! Хочу внедрить свою кнопку в чужой процесс , при помощи DLL , итак делаю...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru