Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.57/21: Рейтинг темы: голосов - 21, средняя оценка - 4.57
 Аватар для Liss29
225 / 39 / 4
Регистрация: 18.11.2012
Сообщений: 1,633

Поиск окон. FindWindow()

15.08.2022, 08:21. Показов 5262. Ответов 29
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет, всем! Назрел такой вопрос: Допустим, я запускаю n-е количество окон одного и того же класса, как следует их искать, поясню, я хочу найти все запущенные экземпляры данного окна, если запущено 2 окна, то при запуске 3-го найти дескриптор второго, первого и далее функция возвращает NULL, что говорит, что окон данного класса в системе больше нет. Пробовал функцию FindWindow(), но она находит только одно окно, если её запустить в цикле, то ровным счётом ничего не происходит, в смысле не происходит того, что хочется получить как положительный результат. Просто интересно, как это можно сделать, желательно без костылей.

Я решил это так:
C++
1
2
3
4
5
#pragma data_seg(".Shared")
int counterWindows = 0;
#pragma data_seg()
 
#pragma comment(linker, "/SECTION:.Shared,RWS")
Затем при запуске нового окна переменная countWindows увеличивалась, далее проверял эту переменную, и если она больше двух, то, соответственно, спрашивал пользователя: "Нужно ли его запускать?" и.т.д.... Всё вроде бы ничего, но это не совсем то, что нужно, как мне кажется.

Можно ли с помощью функции FindWindow() найти все запущенные экземпляры окна, если они имеют один класс, но разные заголовки и решить задачу, что на скрине?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.08.2022, 08:21
Ответы с готовыми решениями:

FindWindow, поиск по части заголовка
есть функция FindWindow(NULL,"блокнот"); возможно ли сделать так чтобы она искала по ключевому слову (не знаю как написать еще) ...

Поиск текста в чужом окне (FindWindow/EnumChildWindows)
Здравствуйте. 1. Есть программа UnderC, интерпретатор запускается командной строкой ucw.exe task.cpp 2. Результат выполнения выглядит...

Можно ли вместо поиска окон (FindWindow) искать запущенные процессы?
Как это делает, например tasklist или taskkill в командной строке винды

29
 Аватар для Liss29
225 / 39 / 4
Регистрация: 18.11.2012
Сообщений: 1,633
19.08.2022, 08:29  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от KSergey9 Посмотреть сообщение
люди, ну есть же отладчик!
Ты просил код, я его набросал на скорую руку, то что он не работает я сразу сказал. Чтобы заработал нужно вызывать функцию так: HWND HwndCurrent = FindWindowEx(NULL, HwndNext, szMainClass, NULL); так работает, но коряво.

Отладчик в Win-приложениях не так уж и помогает. Да и приложение тут простое нужно такое понимать без отладчика.
0
631 / 526 / 104
Регистрация: 05.08.2022
Сообщений: 2,810
19.08.2022, 08:58
Цитата Сообщение от Liss29 Посмотреть сообщение
Отладчик в Win-приложениях не так уж и помогает
Да? неожиданно.

Цитата Сообщение от Liss29 Посмотреть сообщение
Ты просил код
Олё, чувак. Ты оглянись вокруг на мир. Это тебе вот всё это надо, не мне.

Цитата Сообщение от Liss29 Посмотреть сообщение
Ты просил код, я его набросал на скорую руку, то что он не работает я сразу сказал.
Я тебе указал где ошибка в приведённом тобой коде. Чем ты не доволен?

Цитата Сообщение от Liss29 Посмотреть сообщение
так работает, но коряво.
Код или работает как требуется, или как требуется не работает.
Что такое "работает коряво" - мне не ведомо, а ты не расшифровываешь. Видимо тебе интереснее на жизнь пожаловаться, а не причину проблемы найти и устранить. Дело твоё.
0
 Аватар для Liss29
225 / 39 / 4
Регистрация: 18.11.2012
Сообщений: 1,633
19.08.2022, 09:07  [ТС]
Цитата Сообщение от KSergey9 Посмотреть сообщение
Олё, чувак. Ты оглянись вокруг на мир. Это тебе вот всё это надо, не мне.
Видимо, тебе бы оглянуться нужно я у тебя ничего спрашивал и никаому ни на что не жалуюсь, ты как бы не приувеличивай свою помощь, ага!
0
631 / 526 / 104
Регистрация: 05.08.2022
Сообщений: 2,810
19.08.2022, 09:14
Фига се ты перец
ну ок, копай дальше
успехов!
0
 Аватар для Morgot
336 / 129 / 18
Регистрация: 26.12.2010
Сообщений: 501
20.08.2022, 16:46
Цитата Сообщение от Liss29 Посмотреть сообщение
Для меня семафоры, события и.т.д. - загадка я эти механизмы не понимаю.
Надо просто сесть раз и разобраться, там ничего сложного нет. события да, могут показаться муторными (все эти нюансы ручной сброс, автоматика и так далее, но опять же - практика). А семафор - в нем плюс, что он имеет счетчик. Т.е. вот то, что вам нужно. Посмотрите книгу Финогенов - основы win32, очень простая и доступная, там есть эти все вещи.
0
 Аватар для Liss29
225 / 39 / 4
Регистрация: 18.11.2012
Сообщений: 1,633
21.08.2022, 07:08  [ТС]
Цитата Сообщение от Morgot Посмотреть сообщение
Надо просто сесть раз и разобраться
С этим и не поспоришь, но пока что не получается детально разобраться.

Цитата Сообщение от Morgot Посмотреть сообщение
Финогенов - основы win32
В планах был Харт и Рихтер. Не знаю, что конкретно, даст результат, какая книга даст понимание сути вопроса, а, возможно, не даст ничего, такое тоже бывает.
0
 Аватар для Morgot
336 / 129 / 18
Регистрация: 26.12.2010
Сообщений: 501
21.08.2022, 14:31
Liss29, Финогенов проще, это именно самые-самые основы. Рихтер посложнее, как и Харт (книга которого мне очень нравится за наличие "домашних заданий", но там нужно поизучать плотно).
0
 Аватар для Liss29
225 / 39 / 4
Регистрация: 18.11.2012
Сообщений: 1,633
22.08.2022, 02:50  [ТС]
Цитата Сообщение от Morgot Посмотреть сообщение
Финогенов проще, это именно самые-самые основы
Где бы ещё качественный скан взять, то страницы не все, то порядо страниц не последовательный, короче говоря, пока качественный экземпляр не нашёл.

Цитата Сообщение от Morgot Посмотреть сообщение
Харт (книга которого мне очень нравится за наличие "домашних заданий", но там нужно поизучать плотно).
Отчасти поэтому и хочу почитать Харта. Я разве не плотно изучаю) как ни крути, всё равно нужно более плотное изучение, если мы оба под термином, плотно, пониманием одно и тоже.
0
 Аватар для Morgot
336 / 129 / 18
Регистрация: 26.12.2010
Сообщений: 501
22.08.2022, 19:18
Цитата Сообщение от Liss29 Посмотреть сообщение
качественный скан взять
Рутрекер. Там есть полная версия , нормальном качестве. формат djvu

Цитата Сообщение от Liss29 Посмотреть сообщение
Я разве не плотно изучаю) как ни крути, всё равно нужно более плотное изучение, если мы оба под термином, плотно, пониманием одно и тоже.
думаю да, одно и тоже; я не имею ввиду ничего против Харта, наоборот. Просто Харт - перешел с линукса на винду, и основной посыл его книги, помочь уже программистам освоить вин32. Если сравнить с тем же Побегайлом, у последнего больше детализации - вот есть функция, на нее пример, вот есть еще одна, еще пример, причем такие подробные. У Харта такого нет. Зато у него присутствуют темы типа оптимизации многопоточных программ, которых нет у других.
0
 Аватар для Liss29
225 / 39 / 4
Регистрация: 18.11.2012
Сообщений: 1,633
23.08.2022, 02:47  [ТС]
Цитата Сообщение от Morgot Посмотреть сообщение
Рутрекер. Там есть полная версия , нормальном качестве. формат djvu
Серьёзно, нашёл в другом месте, не знаю на счёт полноты, но качество страниц и шрифта лучше, чем те экземпляры, что я нашёл на Рутрекере.

Цитата Сообщение от Morgot Посмотреть сообщение
Просто Харт - перешел с линукса на винду
И это сильно ощущается.)

Цитата Сообщение от Morgot Посмотреть сообщение
Если сравнить с тем же Побегайлом
Мне не понравилось. Да и примеров заданий для проработки материала нет, голая теория ни о чём.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.08.2022, 02:47

Как определить дескриптор через FindWindow, если таких окон несколько?
Здравствуйте. Пытаюсь получить дескриптор окна Google Chrome. Скриншот из Spy++ во вложении. Дело в том, что в всех дочерних окон...

FindWindow поиск хендл
Доброго времени суток подскажите как найти второй хендл "MozillaWindowClass" структура такая родитель +MozillaWindowClass...

Поиск окон процесса
Привет, подскажите пожалуйста какие функции надо использовать в моем случае, никак не могу найти нужную информацию. Есть некий процесс,...

Поиск окон WinAPI
Подскажите как найти hendl последнего MacromediaFlashPlayerActiveX в такой стректуре Shell Embedding ------Shell DocObject View ...

Поиск дочерних окон
Не могу понять как осуществляется поиск дочерних окон. С главными окнами все нормально. находит Вот код: ...


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

Или воспользуйтесь поиском по форуму:
30
Ответ Создать тему
Новые блоги и статьи
сукцессия 30. Фосфорный и азотный замки по "честному" закону лимитирования Либиха
anaschu 16.07.2026
Основные достижения за последние дни 1. Механизм отложенного высвобождения фосфора Добавлен специальный пул для медленного разложения меланизированных гиф ЕСМ Реализована разная скорость. . .
Запрет пометки на удаление и отмены проведения
Maks 16.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "ПутевойЛист" разработанного в КА2. Задача: запретить помечать на удаление и отменять проведения путевого листа при условии, если он сдан. . .
Как надо было делать правильно - вообще не слушать ИИ, его дело - текст.
Hrethgir 15.07.2026
А вообще надо было делать не так, чтобы не исправлять ошибку https:/ / www. cyberforum. ru/ blogs/ 223907/ 10996. html , правильно было : удалил кнопку, а потом добавил её. Всё это стресс конечно. Почему?. . .
Знаете, от чего появляется стресс?
kumehtar 15.07.2026
Стресс появляется оттого, что вы, зная как поступить правильно, делаете наоборот. Ларри Уингет
Нас бьют, а мы крепчаем? Какая чушь!
kumehtar 15.07.2026
Вот это вот бытующее мнение, что человек меняется только под действием проблем, всегда считал вредоносным. Поверь, от проблем у людей появляются не изменения, а нервное расстройство и ПТСР. А. . .
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров В текущей версии модели успешно реализован ключевой механизм. . .
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям Реализованные компоненты: Механизм закисления почвы через протонную помпу Конкуренция между типами микориз pH как триггер сукцессии C/ P соотношение. . .
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru