![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как получить Handle окна ? [D7, WinXP]
slaga © (2006-04-11 13:51:00)Добрый день.
Подскажите пожалуйста как мне получить Handle окна определеного приложения имея название его exe файла ?
slaga (2006-04-12 10:10:00) [1]Я решил эту проблему по другому,
дело в том что хендл ПриложенияА нужно получить в запускаемом ПриложениемА - ПриложениеБ, соответственно я передаю Хендл ПриложенияА в ПриложениеБ через параметры запуска.
GrayFace (2006-04-11 18:10:00) [2]Думаю, можно примерно так:
// wnd - хендл любого окна приложния
while wnd<>0 do
begin
wnd1:=wnd;
wnd:=GetWindowLong(wnd, GWL_HwndParent);
end;
// wnd1 - искомый
Хотя я про HwndParent (не путать с обычным Parent'ом) мало знаю.
Сергей М. (2006-04-11 15:44:00) [3]Не получится.
Все Делфи-VCL-приложения, использующие класс TApplication и его окно в кач-ве "главного", создают это окно с классом 'TApplication' и пустой подписью по умолчанию.
Т.е. сколько различных Делфи-VCL-приложений (использующих класс TApplication) работает в системе, столько и окон будет с такими атрибутами.
Leonid Troyanovsky (2006-04-11 15:41:00) [4]
> slaga © (11.04.06 15:34) [9]
> У меня еще одно условие, на одной машине может быть только
> один запущеный екземпляр, а получить мне надо его Application.
> Handle
А причем, тогда, имя файла?
Т.е., переименовать его нельзя? Или это будет отдельным вопросом?
Что-то ты не договариваешь.
--
Regards, LVT.
slaga (2006-04-11 15:34:00) [5]У меня еще одно условие, на одной машине может быть только один запущеный екземпляр, а получить мне надо его Application.Handle
Сергей М. (2006-04-11 15:30:00) [6]
> у меня есть только название ехе файла
Этого не достаточно.
Тот самый твой "exe-файл" вполне может создать тучу тех самых форм, каждая из которых создаст окно, каждое из которых уникально в комбинации своих атрибутов, а именно "класс окна" + "подпись окна" + "свойство окна"
slaga (2006-04-11 15:21:00) [7]у меня есть только название ехе файла
slaga (2006-04-11 15:20:00) [8]у меня есть только название ехе файла
Джо (2006-04-11 15:17:00) [9]> [4] slaga © (11.04.06 15:15)
> Мне нужно получить Handle окна (Формы), которому я смогу
> послать сообщение о закрытии.
Ищи, например, по классу окна.
slaga (2006-04-11 15:15:00) [10]Мне нужно получить Handle окна (Формы), которому я смогу послать сообщение о закрытии.
Сергей М. (2006-04-11 15:06:00) [11]Определить, является ли некое окно приложения главным, невозможно, потому что не существует четкого критерия "главности" окна - любое верхнеуровневое окно вправе в тот или иной момент назваться "главным"
slaga (2006-04-11 15:01:00) [12]Главное окно приложения (оно точно есть, это условие)
Сергей М. (2006-04-11 13:54:00) [13]
> Handle окна
Какого окна-то ?
Приложение вправе создавать и одно окно, и ни одного окна, и косой десяток окон ..