170 похожих чатов

Всем привет, кто может подсказать решение? что делать если дочернее

окно и окно родителя имеют:
1. одинаковый класс (если искать по названию класса, то находится то окно, которое активное, а нужно только дочернее)
2. названия этих окон динамические, каждую минуту в названии окна меняются несколько цифр (т.е. найти это дочернее окно по имени можно, но на одну минуту, так не подходит)
Как проигнорировать родительское окно клиента и найти только дочернее которое открывается через клиент?

10 ответов

19 просмотров

Не уверен, что тема для этого чата, но найдите окно по регулярке, например, не только же цифры в названии. Возьмите его хендл/id и дальше работайте с ним. Да и вы хотя бы указали, что за оконная система, чтобы не рассуждать в вакууме

Yolka- Автор вопроса
Ofee Oficsu
Не уверен, что тема для этого чата, но найдите окн...

Не понял на счёт оконной системы. Хендл меняется каждый раз когда закрывается окно и открывается снова

Yolka- Автор вопроса
Ofee Oficsu
Не уверен, что тема для этого чата, но найдите окн...

Можете дать какую нибудь статью или ссылку на захват окна по регулярке (в имени окна есть пару слов, которые никогда не меняются)

Yolka
Можете дать какую нибудь статью или ссылку на захв...

Нет, не могу, это общая идея – пройтись по списку окон, проверить их имена на совпадение с подходящим шаблоном. Либо отслеживать появление каждого нового окна и сверять. Например, регулярным выражением. Возможно, вам подойдёт что-то даже более простое – проверка вхождения некоторой фразы в имя. Что-то конкретное посоветовать не могу, поскольку C++ не имеет инструментов для работы с оконной системой и вам нужно использовать соответствующие инструменты – предполагая, что вы работаете с Windows, вам стоит изучить подходящие функции в WinAPI. Если это Linux – нужно разбираться либо с X11 или Wayland, либо с API оконного менеджера. Про macOS ничего не подскажу

Yolka
WinAPI

Предположу, что вам требуется что-то такое

/warn offtopic

получай ивенты окна с помощью windowproc, про ивенты ищи на msdn

Похожие вопросы

Обсуждают сегодня

Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
лучше скажите, причём тут паскаль?
Alexey Kulakov
36
Чтобы перехватить все нажимания буков на форме, надо хук ставить? Пробовал на форме ОнКейДаун, оно ловит клаву если фокус не на компоненте с вводом текста
Serjone
15
Народ! Впервые клиенту пришло письмо от РКН, у вас, дескать, есть яндекс метрика, а нигде не написано, что вы ее юзаете. Никто не сталкивался?
Sasha Beep
14
Всем привет! вывожу на общей стр дочерние ресурсыв каждом ресурсе галерея, и первая фотка должна выводиться на общей [!DocLister? &prepare=photo !]
Alekso
12
А можно вопрос? Мне сегодня сказали что у меня функция (которая просто заполняет массив значениями) не правильная void Full(double * arr, int n) { for (int i = 0; i < n; i...
† C E †
7
День добрый, подскажите пожалуйста, есть ли какой-то способ сказать ребару не компилировать определённое приложение? Всю доку их перечиатл ничего подобного не нашёл
Кирилл
14
Добрый вечер. Хочу чтобы у меня в классе поле было функцией, которая возвращает строку. Делаю так: interface ... TGetOutPath = function : String of object; ... protec...
Kirill Filippenok
12
Здравствуйте, хочу сделать HelloWorld в консоли Дельфи, но функция API ничего не выводит, что я делаю не так? program Hello; {$APPTYPE CONSOLE} uses System.SysUtils, WinAPI.Wi...
Sergey Vinogradov
20
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Карта сайта