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

Как можно проверить что у процесса есть окно? Поверяю так

process.MainWindowHandle != IntPtr.Zero; , но эта проверка жрет очень много ресурсов, хз почему

10 ответов

10 просмотров

уверен что из-за этого:?

Alex- Автор вопроса
Николай Кован
уверен что из-за этого:?

Ну профилировщик ссылается на это, дело в том что я циклом проверяю есть ли окно у процесса

Попробуй проверку переписать на winapi. Получай список хендлеров процессов (с помощью winapi) и с помощью IsWindow (помоему так называется) проверять, если у процесса с этим хенделером окно. Мб быстрее будет.

Николай Кован
Так а на шарпе не такая же реализация?

Это надо смотреть как реализован getProcesses и что происходит при создании инстанса процесса. Там куча свойств, тамещто. Мб конечно они ленивые

Попробуй дёргать соответствующий winapi руками. Было замечено, что в коде стдлибы довольно много лишнего кода в районе работы с процессами. Если winapi всё ещё будет медленно, то параллелить.

Alex- Автор вопроса
Anton 『被遗忘的社会』
Попробуй проверку переписать на winapi. Получай сп...

Попробовал с помощью EnumProcesses из Psapi.dll, но получилось еще более затратно, ибо нужно получить и имя и хендлер

Alex
Попробовал с помощью EnumProcesses из Psapi.dll, н...

Тебе нужно получить имена всех возможно открытых окон или только уже открытых окон? Можно тамещто через EnumWindow получить все хендлеры всех окон, а потом получить PID всех процессов которым эти окна принадлежат через GetWindowThreadProcessId И чём мне кажется, но я не уверен, что будет быстрее.

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

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

читать файл максимально быстро? странный вопрос))
zamtmn
53
Приветствуем всех! Устали без проектов? Если вы программист и хотите получать стабильные заказы, компания Elif предлагает вам недельный курс по поиску проектов и их ведению. ...
Elif
1
А чего сейчас в моде вместо Error для эксепшенов? А то я тут внезапно узрел что он не рекомендуется :) У Try::Tiny какой-то совершенно ужасный синтаксис если надо конкретные э...
Denis F
17
Привет. Сразу скажу, что на C/C++/Rust я не пишу, но тем не менее возникла потребность дебага C/C++/Rust кода. Суть: есть серверное приложение, которое периодически ведёт себ...
ninekeem 🐳
4
или вы считаете муит дает знание?
супер_лох_3000 альфа версия
12
всем привет! углубившись в плюсы и начав изучать реверсинг понял, что без асм'а никуда со своими высокоабстрактными представлениями начал изучать механизмы асма, и не совсем п...
9
А кто такой мужчина в твоем понимании Азиз?
who?です 🐈
11
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Ну значит тебе повезло, мы же про транк говорим оба?
Александр (Rouse_) Багель
11
https://habr.com/ru/companies/domclick/articles/500978/ Добрый день, подскажите, пожалуйста, насколько хорошая практика сделать вот такую структуру эксчейнджей и очередей для...
Sergey
5
Карта сайта