Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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
2-1151941702
Вася
2006-07-03 19:48
2006.07.23
png не расстянуть


15-1149995690
Black Angel
2006-06-11 07:14
2006.07.23
Не могу поставит Delphi 8


1-1149781802
pound
2006-06-08 19:50
2006.07.23
Как копировать в буфер обмена из Edit


15-1150795453
Alkid
2006-06-20 13:24
2006.07.23
Чему учить детей?


2-1151672078
Zilog
2006-06-30 16:54
2006.07.23
FloatToStr и стандарты в Windows





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский