Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


Информационный Канал Subscribe.Ru

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / C/C++

Выпуск № 126
от 13.06.2005, 05:30

Администратор:Калашников О.А.
В номере:Вопросов: 1, Ответов: 4


Вопрос № 21920: ЗДраствуйте эксперты:-) Хотел бы узнать как програмно узнать допутим заголовок окна отдельной программы через свою программу... например узнать заголовок окна винампа ) Заранее спасибо...

Вопрос № 21.920
ЗДраствуйте эксперты:-)
Хотел бы узнать как програмно узнать допутим заголовок окна отдельной программы через свою программу... например узнать заголовок окна винампа )
Заранее спасибо
Отправлен: 08.06.2005, 05:25
Вопрос задал: ДимооН :) (статус: 1-ый класс)
Всего ответов отправлено: 4

Отвечает: Ерёмин Андрей
Здравствуйте, ДимооН :)!
Можно воспользоваться функцией WinAPI GetWindowText(), которая возвращает заголовок окна, чей указатель ей передан. В свою очередь, найти указатель нужного окна можно через FindWindow(), передав ей в качестве заголовка пустую строку (т.к. он неизвестен и его требуется найти), а в качестве имени класса - класс нужного окна, например того же Winamp (Класс окна Winamp'а - BaseWindow_RootWnd).
Ответ отправил: Ерёмин Андрей (статус: 6-ой класс)
Отправлен: 08.06.2005, 07:30
Оценка за ответ: 5

Отвечает: Voituk Alexander
Здравствуйте, ДимооН <img src=http://img.mail.ru/ru/btn/smile.gif>!
Это очень просто - сначала функцией GetWindow получи дескриптор нужного окна, а потом используя это дескриптор функцией GetWindowText получишь его заголовок.
Ответ отправил: Voituk Alexander (статус: 7-ой класс)
Отправлен: 08.06.2005, 11:30
Оценка за ответ: 4

Отвечает: SackTap
Здравствуйте, ДимооН :)!
Вы можете получить дескриптор любого окна при помощи функции FindWindow, прототип одного из алиасов которой в приложении. Для поиска окна этой функцией необходимо передать ей имя окна и имя класса, но в вашем случае имя окна нужно узнать, поэтому нужно передать имя класса. Этот класс можно определить входящей в состав Visual Studio утилитой Spy++. Получив дескриптор окна вы можете сделать с ним все, что только захотите, в том числе и получить его имя:
char sText[100];
HWND hFW = FindWindow ("misc_class",NULL);
GetWindowText (hFW, sText, sizeof(sText));

Приложение:

---------
=)

Ответ отправил: SackTap (статус: 9-ый класс)
Отправлен: 08.06.2005, 11:39
Оценка за ответ: 5

Отвечает: Виталий
Здравствуйте, ДимооН :)!
Можно перебрать все окна функцией FindWindow
а по по возвращенному дескриптору получит заголовок окна функцией
GetWindowText.
Или например можно пуступить так:
получить положение окна (например по положению мышки)
и начать переберать окна в Z последовательности функцией GetNextWindow
по хендлу определять область окна функцией GetWindowPlacement
и область какого первого окна будет соответсвовать - над тем и находится курсор.
Ответ отправил: Виталий (статус: 1-ый класс)
Отправлен: 08.06.2005, 15:08
Оценка за ответ: 5


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2005, RusFAQ.ru, Россия, Москва. Все права защищены.
Идея, дизайн, программирование, авторское право: Калашников О.А.

Яндекс


Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.cplus
Отписаться
Вспомнить пароль

В избранное