Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.08.2014, 16:24   #1
dmitriegorovih
Ещё не
Форумчанин
 
Аватар для dmitriegorovih
 
Регистрация: 04.01.2010
Сообщений: 517
Смущение Заголовок приложения по активному окну.

Доброго времени суток! В общем, есть такая задача. По активному окну определить application.title и application.exename другого приложения. Я думал, может через функцию GetActiveWindow узнать handle формы, а потом …… эм не знаю.
P.S. Delphi 7.
Воображение важнее, чем знания. (Albert Einstein)
dmitriegorovih вне форума Ответить с цитированием
Старый 16.08.2014, 16:35   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну если так то:
Код:
 function WindowCaption;
 var Nm:Array[0..255] of Char; Wind:handle;
 begin
    Wind:=GetActiveWindow();
    ... Тут нужно пройти циклом по GetParent(hwnd) пока не доберешься до окна приложения.
    GetWindowText(Wind,Nm,sizeof(nm)); // считываем  текст заголовка окна
    result:=string(nm);
 end;
Вот единственное не помню как правильно циклом до парента добраться.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.08.2014, 20:06   #3
dmitriegorovih
Ещё не
Форумчанин
 
Аватар для dmitriegorovih
 
Регистрация: 04.01.2010
Сообщений: 517
Смех

Цитата:
Сообщение от Stilet Посмотреть сообщение
Ну если так то:
Код:
 function WindowCaption;
 var Nm:Array[0..255] of Char; Wind:handle;
 begin
    Wind:=GetActiveWindow();
    ... Тут нужно пройти циклом по GetParent(hwnd) пока не доберешься до окна приложения.
    GetWindowText(Wind,Nm,sizeof(nm)); // считываем  текст заголовка окна
    result:=string(nm);
 end;
Вот единственное не помню как правильно циклом до парента добраться.
Нашел я, в чем была проблема. Оказывается GetActiveWindow возвращает активное окно только своего приложения, нужно было использовать GetForegroundWindow то, что нужно (ох уж эти подводные камни) ну все вроде разобрался спасибо!
Код:
 function TForm1.WindowCaption:string;
 var
 Nm:Array[0..255] of Char;
 Wind:HWND;
 begin
    Wind:=GetForegroundWindow();
    while GetParent(wind)<>0 do
    begin
     wind:=GetParent(wind);
    end;
    GetWindowText(Wind,Nm,sizeof(nm)); // считываем  текст заголовка окна
    result:=string(nm);
 end;
Воображение важнее, чем знания. (Albert Einstein)

Последний раз редактировалось dmitriegorovih; 16.08.2014 в 22:09.
dmitriegorovih вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Вопрос]Как найти процесс приложения зная его заголовок? saylar_06 Общие вопросы Delphi 9 10.07.2011 21:17
Заголовок приложения xanderg Microsoft Office Access 3 24.11.2010 16:58
Вопрос по активному окну san72 Общие вопросы Delphi 11 07.03.2009 12:05
Заголовок ShowMessage, приложения Кагбе_Прогер Помощь студентам 2 05.12.2008 10:39
Добавление меню к окну приложения... MaTBeu Win Api 2 24.09.2008 20:23