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