|
3 / 3 / 0
Регистрация: 14.12.2020
Сообщений: 171
|
|
Как отследить события чужого окна?06.04.2021, 19:22. Показов 8371. Ответов 53
Метки нет (Все метки)
Здравствуйте!
Помогите, пожалуйста в решении следующей задачи... Есть окно цель которого "следить" за неким участком экрана, а точнее за тем, что происходит под ним.. . Допустим, что окно следит за Paint-ом, браузером или word-ом и пользователь двигает(или скролит) этот самый Paint, word или браузер. Окно должно двигаться вслед за действиями пользователя. Т.е. окно должно как бы приклеится к "отслеживаемой поверхности". Сделать это можно двумя способами: Первый, отслеживать и анализировать графические изменения на экране. Теоретически есть и второй способ.... (вероятно, более простой, если знать как это делать) Определить hWnd отслеживаемого окна(находящегося под следящим окном) и отслеживать его события. Если, не трудно подскажите, пожалуйста как это делается, а точнее... Как получить hWnd окна находящегося под следящим окном? И как отследить события окна по hWnd? Заранее, Спасибо!
0
|
|
| 06.04.2021, 19:22 | |
|
Ответы с готовыми решениями:
53
Как добавить свою кнопку в title-bar ЧУЖОГО окна? Как зная дескриптор чужого окна сделать его неактивным? Как отследить разфокуксировку окна |
|
3 / 3 / 0
Регистрация: 14.12.2020
Сообщений: 171
|
|||||
| 18.04.2021, 21:51 [ТС] | |||||
|
Вот, еще что интересно: у GetCursorPos_ параметром служит указатель на структуру POINT, которая получает экранные координаты курсора. Но...... указатель на структуру Р это @p, следовательно, строка должна выглядеть вот так:
Тем не менее, она работает и так: Добавлено через 14 минут Pro_grammer, Кстати, после экспериментов выяснилось, что WindowFromPoint видит hwnd невидимого глазом пользователя "дырявого" окна. Т.е. Видит не окно под "дыркой", которое видно пользователю, а окно содержащее дырку. Так, что его хоть на миг, но придется убрать с экрана, как это делают скришоторы, п жаль.... Хотелось этого избежать из эстетических соображений.
0
|
|||||
|
|
|||
| 18.04.2021, 22:06 | |||
|
Debug p Debug @p По логике у структуры и должен возвращается её адрес, а что же ещё? А так возвращается значение переменных Debug p\x Debug p\y Добавлено через 12 минут У меня ваш эксперимент не подтвердился. При клике на "дырке" выдает HWND именно окна под дыркой.
0
|
|||
|
3 / 3 / 0
Регистрация: 14.12.2020
Сообщений: 171
|
|
| 18.04.2021, 22:15 [ТС] | |
|
0
|
|
|
1 / 1 / 0
Регистрация: 28.07.2018
Сообщений: 124
|
||||||
| 13.11.2021, 08:51 | ||||||
|
Пытаюсь использовать API функцию GetWindow_() с параметром GW_HWNDNEXT, которая, по идее, должна возвращать хендл окна, которое находится ПОД активным окном, но она почему-то возвращает хендл какого-то другого окна. В чём проблема не могу понять.
Ссылка на описание функции Вот простой код:
0
|
||||||
|
|
||
| 13.11.2021, 12:16 | ||
|
Найденный дескриптор идентифицирует окно ниже определяемого окна в Z - последовательности. Ваше окно может быть вообще в другом углу экрана.
0
|
||
|
1 / 1 / 0
Регистрация: 28.07.2018
Сообщений: 124
|
||
| 13.11.2021, 12:36 | ||
|
Может быть я неправильно понимаю Z - последовательность ?
0
|
||
|
|
||
| 13.11.2021, 13:40 | ||
![]() Запустите подряд 5 калькуляторов. Повозите над ними своё окно. Чувствуете, что окон много, а нижнее в Z - последовательности только одно?
0
|
||
|
1 / 1 / 0
Регистрация: 28.07.2018
Сообщений: 124
|
|
| 13.11.2021, 13:45 | |
|
А как же тогда мне правильно узнать дескриптор окна, находящийся под созданным нами окном ?
0
|
|
|
|
|
| 13.11.2021, 15:58 | |
|
А для чего нужно создавать своё окно поверх чужого? Ведь чужое не видно будет!
В теме уже есть простой способ: Функция WindowFromPoint извлекает дескриптор окна, которое содержит заданную точку.
0
|
|
|
1 / 1 / 0
Регистрация: 28.07.2018
Сообщений: 124
|
|
| 13.11.2021, 16:15 | |
|
Верхнее окно можно растягивать и уменьшать, выбирая тем самым область для скриншотов окна, которое находится под ним. То есть, Выбрали область при помощи верхнего окна, закрыли верхнее окно, и потом скриншотим эту область в окне, находящимся под ним. Хендл нужен, чтоб скриншотить это окно даже если оно перекрыто другими окнами.
0
|
|
|
|
||
| 13.11.2021, 17:06 | ||
|
0
|
||
|
1 / 1 / 0
Регистрация: 28.07.2018
Сообщений: 124
|
|
| 13.11.2021, 17:36 | |
|
Сейчас попробую.... )))
Добавлено через 18 минут Эх, у меня-самоучки ещё мало опыта.... Не могу разобраться как работать со структурами. В частности, как правильно здесь применить структуру POINT
0
|
|
|
|
|
| 13.11.2021, 18:40 | |
|
1
|
|
|
1 / 1 / 0
Регистрация: 28.07.2018
Сообщений: 124
|
|
| 13.11.2021, 19:48 | |
|
Благодарю, Pro_grammer !!! Сейчас буду пробовать !
Добавлено через 9 минут Всё сработало !!! Ещё раз огромное спасибо за помощь !!!
0
|
|
| 13.11.2021, 19:48 | |
|
Как отследить открытие нового окна в outlook? Как изменить размер чужого окна? Как отследить события на USB? Как предотвратиь появление определенного чужого окна Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства.
Родственных связей существует 8 ступеней, такие как:
p - отец
P - мать
q - муж
Q - жена
b - брат
B - сестра
s - сын
S - дочь
|
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире.
Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
|
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
|
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
|
|
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
|
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701
Купил два термопринтера QR701.
На сэлф-тесте написано:
Language: PC936 (GB18030).
Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
|
Создание формы заимствованного документа
Maks 03.08.2026
Задача:
Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также
табличная часть со следующими реквизитами:
- Расчетный счет покупателя. . .
|
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача:
В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
|