Название: Получить список активных окон Отправлено: virtual_root от Июль 06, 2012, 16:46 Ребята, мне нужно получить список всех активных окон в windows с названиями приложений к которым они относятся. Список окон я получила, а вот как узнать название приложения не могу найти...
Код: QMap<QString,QVariant> window; Название: Re: Получить список активных окон Отправлено: mutineer от Июль 06, 2012, 16:50 "Название приложения" - это что такое? Имя бинарника? Заголовок окна?
Название: Re: Получить список активных окон Отправлено: kambala от Июль 06, 2012, 16:57 видимо название бинарника, т.к. заголовок окна уже получен в коде (GetWindowText()). наверное надо через список процессов это делать.
Название: Re: Получить список активных окон Отправлено: virtual_root от Июль 06, 2012, 17:00 Да мне нужно имя бинарника. Появилась идея получать список всех приложений из диспетчера задач. В диспетчере задач отображается и название программы и её заголовок. Можно ли эти данные получить по отдельности зная PID процесса? Или как бы можно было достать оттуда эту инф-ю?
Название: Re: Получить список активных окон Отправлено: virtual_root от Июль 06, 2012, 17:01 Я смотрела фун-и по работе с процессами. Но я могу лишь получить PID процесса, а как же мне узнать заголовок окна к которому он привязан?
Название: Re: Получить список активных окон Отправлено: virtual_root от Июль 06, 2012, 18:12 Написала фун-ю которая получает список всех процессов, затем пытаюсь получить id основного потока в каждом процессе, они мне нужны для фун-и EnumThreadWindows которая вернет дескриптор окна потока, а я из него заголовок получу. Но вот беда ID потока приходит у всех одинаковый... Почему?
Код: PROCESSENTRY32 PE32; Название: Re: Получить список активных окон Отправлено: Alex Custov от Июль 06, 2012, 18:33 Откуда вы вообще такие примеры берёте? Сперва WTS, теперь снапшоты. Постарайтесь понять что вы используете перед тем как использовать.
Ваше решение - EnumWindows, GetWindowThreadProcessId, GetProcessImageFileName Название: Re: Получить список активных окон Отправлено: Serr500 от Июль 06, 2012, 19:22 :o Вы вообще документацию к функции CreateToolhelp32Snapshot читали?
Цитировать Takes a snapshot of the specified processes, as well as the heaps, modules, and threads used by these processes. Зачем это??Alex Custov дал Вам верный список функций. Название: Re: Получить список активных окон Отправлено: Bepec от Июль 06, 2012, 19:42 Походу мы наблюдаем будущего вирусописателя чоли :)
Слишком уж набор специфичный - глобальный хук, вычисление всех окон, сокрытие хука от антивируса, ловля лока учётки :D Название: Re: Получить список активных окон Отправлено: virtual_root от Июль 09, 2012, 14:24 Спасибо ребята! Воспользовалась приведённым набором функций и у меня всё получилось! Моему счастью не было предела)
Но у меня правда ещё есть вопросики: а кто-нибудь знает какие API функции надо использовать под ос mac os чтобы получить всё тот же список активных окон? Я лазила по интернету, но что-то ничего путёвого не могу найти.. Может кто ссылку кинет. и один вопрос двоичника: а как мне в использовать статическое свойство класса в не статическом методе? Я в заголовочном файле создала переменную static bool m_flagVisible; а в не статическом методе пытаюсь к ней обратиться: Код: QList<QMap<QString,QVariant> > WinAPIWindows::GetListActivityWindow(bool visible){ Я уже как только не пробовала обращаться к ней всё равно одна и таже ошибка... Что я не так делаю? Название: Re: Получить список активных окон Отправлено: virtual_root от Июль 09, 2012, 14:26 Забыла сказать класс синглетон и WinAPIWindows::s_instance-> приватный указатель на класс.
Название: Re: Получить список активных окон Отправлено: Serr500 от Июль 09, 2012, 16:16 В .cpp-файле, вероятно, нет следующего:
Код: bool WinAPIWindows::m_flagVisible = что-то-там; Код: m_flagVisible = что-то-там; P.S. По Макоси ничего не подскажу. Только Windows и, немного, Linux. |