Главная страница
    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.48 MB
Время: 0.011 c
1-1150000783
atruhin
2006-06-11 08:39
2006.07.23
Drag&amp;drop объектов в проводник


10-1122639858
ViJen
2005-07-29 16:24
2006.07.23
Дождаться пока ворд закончит печать


2-1151342750
Gizza
2006-06-26 21:25
2006.07.23
Свернуть все окна


15-1150969467
Сатир
2006-06-22 13:44
2006.07.23
Пример в орешник.


3-1148184412
Аркадий
2006-05-21 08:06
2006.07.23
добавление поля в таблице





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский