|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
29.07.2008, 23:50 | #1 |
Форумчанин
Регистрация: 22.11.2007
Сообщений: 224
|
Как зная ProcessID получить Handle главной формы?
Собственно, сабж.
Нужно узнать хэндл главного окна программы, зная ProcessID, для обмена сообщениями. Подскажите, пожалуйста, как это можно сделать. |
30.07.2008, 01:00 | #2 |
Пользователь
Регистрация: 30.07.2008
Сообщений: 14
|
Хэндл главного окна можно узнать и по имени, без участия ProcessId с помощью функции FindWindowEx. Если название окна не позволяет выполнять поиск, можно воспользоваться функцией EnumWindows в сочетании с GetWindowThreadProcessId.
|
30.07.2008, 01:09 | #3 |
Форумчанин
Регистрация: 22.11.2007
Сообщений: 224
|
хм...это всё понятно, но тогда падает производительность(не говоря уже о кол-ве кода)... Некрасиво)
В целом- спасибо |
30.07.2008, 22:59 | #4 |
Пользователь
Регистрация: 30.07.2008
Сообщений: 14
|
Не падает, windows хранит хендлы в массивах, перебор по массиву - быстрая операция. Объем кода - один небольшой цикл.
В дополнение - такого понятия, как главное окно, с точки зрения данного вопроса, нет. В рамках процесса может сущестовать один или несколько потоков, в каждом из которых может быть одно или несколько окон. Следовательно, нет и прямого способа получения главного окна приложения. |
03.05.2021, 01:28 | #5 |
Форумчанин
Регистрация: 04.10.2020
Сообщений: 136
|
|
26.08.2021, 06:59 | #6 |
Заблокирован
Регистрация: 17.12.2018
Сообщений: 514
|
Кто такой знай, почему у него фамилия ProcessID, зачем его получать и почему это надо делать именно хэндлом главной формы?
|
26.08.2021, 22:05 | #7 |
Форумчанин
Регистрация: 04.10.2020
Сообщений: 136
|
|
27.08.2021, 11:47 | #8 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,342
|
|
27.08.2021, 21:29 | #9 |
Форумчанин
Регистрация: 04.10.2020
Сообщений: 136
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как имея 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 |