![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 22.11.2007
Сообщений: 224
|
![]()
Собственно, сабж.
Нужно узнать хэндл главного окна программы, зная ProcessID, для обмена сообщениями. Подскажите, пожалуйста, как это можно сделать. |
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 30.07.2008
Сообщений: 14
|
![]()
Хэндл главного окна можно узнать и по имени, без участия ProcessId с помощью функции FindWindowEx. Если название окна не позволяет выполнять поиск, можно воспользоваться функцией EnumWindows в сочетании с GetWindowThreadProcessId.
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 22.11.2007
Сообщений: 224
|
![]()
хм...это всё понятно, но тогда падает производительность(не говоря уже о кол-ве кода)... Некрасиво)
В целом- спасибо |
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 30.07.2008
Сообщений: 14
|
![]()
Не падает, windows хранит хендлы в массивах, перебор по массиву - быстрая операция. Объем кода - один небольшой цикл.
В дополнение - такого понятия, как главное окно, с точки зрения данного вопроса, нет. В рамках процесса может сущестовать один или несколько потоков, в каждом из которых может быть одно или несколько окон. Следовательно, нет и прямого способа получения главного окна приложения. |
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 04.10.2020
Сообщений: 136
|
![]() |
![]() |
![]() |
![]() |
#6 |
Заблокирован
Регистрация: 17.12.2018
Сообщений: 514
|
![]()
Кто такой знай, почему у него фамилия ProcessID, зачем его получать и почему это надо делать именно хэндлом главной формы?
|
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 04.10.2020
Сообщений: 136
|
![]() |
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,370
|
![]() |
![]() |
![]() |
![]() |
#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 |