Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.07.2008, 23:50   #1
NikLik
Форумчанин
 
Аватар для NikLik
 
Регистрация: 22.11.2007
Сообщений: 224
По умолчанию Как зная ProcessID получить Handle главной формы?

Собственно, сабж.
Нужно узнать хэндл главного окна программы, зная ProcessID, для обмена сообщениями.
Подскажите, пожалуйста, как это можно сделать.
NikLik вне форума Ответить с цитированием
Старый 30.07.2008, 01:00   #2
DearHunter
Пользователь
 
Регистрация: 30.07.2008
Сообщений: 14
По умолчанию

Хэндл главного окна можно узнать и по имени, без участия ProcessId с помощью функции FindWindowEx. Если название окна не позволяет выполнять поиск, можно воспользоваться функцией EnumWindows в сочетании с GetWindowThreadProcessId.
DearHunter вне форума Ответить с цитированием
Старый 30.07.2008, 01:09   #3
NikLik
Форумчанин
 
Аватар для NikLik
 
Регистрация: 22.11.2007
Сообщений: 224
По умолчанию

хм...это всё понятно, но тогда падает производительность(не говоря уже о кол-ве кода)... Некрасиво)
В целом- спасибо
NikLik вне форума Ответить с цитированием
Старый 30.07.2008, 22:59   #4
DearHunter
Пользователь
 
Регистрация: 30.07.2008
Сообщений: 14
По умолчанию

Не падает, windows хранит хендлы в массивах, перебор по массиву - быстрая операция. Объем кода - один небольшой цикл.
В дополнение - такого понятия, как главное окно, с точки зрения данного вопроса, нет. В рамках процесса может сущестовать один или несколько потоков, в каждом из которых может быть одно или несколько окон. Следовательно, нет и прямого способа получения главного окна приложения.
DearHunter вне форума Ответить с цитированием
Старый 03.05.2021, 01:28   #5
Loksiin12
Форумчанин
 
Регистрация: 04.10.2020
Сообщений: 136
По умолчанию

Цитата:
Сообщение от DearHunter Посмотреть сообщение
windows хранит хендлы в массивах
Я хотел бы получить доступ к таким массивам где хранятся эти данные.
Loksiin12 вне форума Ответить с цитированием
Старый 26.08.2021, 06:59   #6
taras-proger77
Заблокирован
 
Регистрация: 17.12.2018
Сообщений: 514
По умолчанию

Кто такой знай, почему у него фамилия ProcessID, зачем его получать и почему это надо делать именно хэндлом главной формы?
taras-proger77 вне форума Ответить с цитированием
Старый 26.08.2021, 22:05   #7
Loksiin12
Форумчанин
 
Регистрация: 04.10.2020
Сообщений: 136
По умолчанию

Цитата:
Сообщение от taras-proger77 Посмотреть сообщение
ProcessID
Мне вот интересно если знаешь пид можно ли быстро получить имя процесса без перебора списка, видимо нет?
Loksiin12 вне форума Ответить с цитированием
Старый 27.08.2021, 11:47   #8
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

Цитата:
Сообщение от Loksiin12 Посмотреть сообщение
видимо нет?
https://stackoverflow.com/questions/...cess-name-in-c
waleri вне форума Ответить с цитированием
Старый 27.08.2021, 21:29   #9
Loksiin12
Форумчанин
 
Регистрация: 04.10.2020
Сообщений: 136
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
https://stackoverflow.com/questions/...cess-name-in-c
я думал туда нужны очень высокие права доступа. Недавно привилегиями занимался и понял насколько это мёртвая тема.
Loksiin12 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как имея handle окна узнать handle edit-a который находится в етом окне SeRhy Общие вопросы Delphi 1 20.07.2008 13:48
как поменять текст в лабел главной формы MAcK Общие вопросы .NET 8 08.05.2008 12:42
Handle -=<[Evklidd]>=- Общие вопросы Delphi 5 03.03.2008 09:02
Как поставить заставку перед запуском главной формы программы? NiganInterCOM Общие вопросы Delphi 2 22.02.2008 16:11
Скрытие главной формы во время работы приложения Gorin Общие вопросы Delphi 7 23.08.2007 19:44