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

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

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.11.2013, 15:17   #11
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

так активное или которое сверху?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 07.11.2013, 15:25   #12
ivt22
Пользователь
 
Регистрация: 23.07.2013
Сообщений: 81
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
так активное или которое сверху?
Дак оно вроде смотрится активным, даже не панели пуск начинает желтым миргать. И выходит поверх всех окон
ivt22 вне форума Ответить с цитированием
Старый 07.11.2013, 16:19   #13
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Ты бы лучше не активное ловил, а проход по всем окнам делал.
Критерий поиска то все равно известен - скажем заголовок или класс.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.11.2013, 08:25   #14
ivt22
Пользователь
 
Регистрация: 23.07.2013
Сообщений: 81
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Ты бы лучше не активное ловил, а проход по всем окнам делал.
Критерий поиска то все равно известен - скажем заголовок или класс.
и что с того, что известен класс? (Заголовок не может быть известен, он все-время разный, и как раз информацию из заголовка и надо вытащить.) В этом классе написано, какое окно сверху лежит? Что-то понять не могу? Или в классе написано, что это активное окно? Там 10 окон этого класса и они когда требуют совершить действия выходят на передний план, поверх всех окон. Но класс-то у всех 10-ти одинаковый
ivt22 вне форума Ответить с цитированием
Старый 08.11.2013, 10:35   #15
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

Можно просмотреть все окна нужного класса и определить какое окно нам нужно на базе других параметров.

А кстати, почему вы решили, что вылезающее окно будет активным - про focus steling слышали?
Самое верхнее окно вроде как GetWindow(GetDesktopWindow(), GW_HWNDFIRST);
waleri вне форума Ответить с цитированием
Старый 08.11.2013, 10:53   #16
ivt22
Пользователь
 
Регистрация: 23.07.2013
Сообщений: 81
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
Можно просмотреть все окна нужного класса и определить какое окно нам нужно на базе других параметров.

А кстати, почему вы решили, что вылезающее окно будет активным - про focus steling слышали?
Самое верхнее окно вроде как GetWindow(GetDesktopWindow(), GW_HWNDFIRST);
нет не слышал про focus steling и не знаю как с ним работать, я вообще плоховато разбираюсь в программировании. А GetWindows(*****); - не работает.
Код:
 H := GetWindow(GetDesktopWindow(), GW_HWNDFIRST);  //Получаем дескриптори на активное окно
 str := GetWndTxt(H);
 edit1.Text := str;
Edit1.text всегда пустой оказывается
ivt22 вне форума Ответить с цитированием
Старый 08.11.2013, 11:22   #17
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

GetWndTxt как устроена?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.11.2013, 11:29   #18
ivt22
Пользователь
 
Регистрация: 23.07.2013
Сообщений: 81
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
GetWndTxt как устроена?

Код:
function GetWndTxt(H: HWND): String;
var
Nm: Array [0 .. 255] of Char;
begin
  GetWindowText(H, Nm, 255);
  RESULT := String(Nm);
end;
P.S. Если я использую H := GetForegroundWindow то текст возвращается
ivt22 вне форума Ответить с цитированием
Старый 08.11.2013, 12:20   #19
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Перепиши ее:
Код:
  if GetWindowText(H, Nm, 255)=0 then  RESULT := String(Nm)
  else Result:=SysErrorMessage(GetLastError);
И лови ошибки, что будут приходить.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.11.2013, 12:53   #20
ivt22
Пользователь
 
Регистрация: 23.07.2013
Сообщений: 81
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Перепиши ее:
Код:
  if GetWindowText(H, Nm, 255)=0 then  RESULT := String(Nm)
  else Result:=SysErrorMessage(GetLastError);
И лови ошибки, что будут приходить.
Ничего не происходит, вот скрин:
Изображения
Тип файла: jpg 1.jpg (80.1 Кб, 119 просмотров)
ivt22 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отловить активное окно ivt22 Win Api 10 13.10.2013 12:44
как узнать, что окно активное/не активное beegl Общие вопросы Delphi 6 01.01.2013 22:48
Активное окно Messir_Leonard Win Api 4 22.04.2008 19:25
Активное окно MadReason Win Api 12 10.01.2008 17:44
Предыдущее активное окно martinz Win Api 3 25.11.2007 15:02