C++Builder
  Начало   Форум   Помощь Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: Как получить дескрипторы других приложений  (Прочитано 7920 раз)
Ree4
Участник
**

Сказали спасибо: +12/-5
Offline Offline

Сообщений: 353


« : 26 декабря 2012, 16:55:46 »

Всем привет, хочу записать дескриптор активного приложения и записать в Memo, но получается только либо сам проэкт С++, либо Builder. Что я не так делаю?
Код:
char buf[256];
HWND h = GetForegroundWindow();
HWND wn = GetWindow(h, GW_OWNER);
GetWindowText(wn,buf,sizeof(buf));
Memo1->Lines->Add(buf);
всё это дело в TTimer
Записан
Еxpert
Просто программст
Участник
**

Сказали спасибо: +21/-36
Offline Offline

Сообщений: 490

DanUnited


« Ответ #1 : 27 декабря 2012, 00:20:26 »

попробуй заюзать TGUIThreadInfo
Записан
OVE
Участник
**

Сказали спасибо: +67/-0
Offline Offline

Сообщений: 72


« Ответ #2 : 29 декабря 2012, 17:15:37 »

Не совсем понимаю смысл вызова GetWindow.
Почему бы сразу после GetForegrowndWindow не вызвать GetWindowText(h,buf,sizeof(buf))?
Записан
Ree4
Участник
**

Сказали спасибо: +12/-5
Offline Offline

Сообщений: 353


« Ответ #3 : 02 января 2013, 05:59:51 »

мне нужно получить дескриптор приложения, чтобы управлять им.
Конкретнее говоря получить браузер а не открытые окна
Записан
volvo877
Глобальный модератор
***

Сказали спасибо: +736/-1
Offline Offline

Сообщений: 891


« Ответ #4 : 02 января 2013, 10:54:42 »

Что я не так делаю?
Забываешь, что GetForegroundWindow уже возвращает хендл окна верхнего уровня, а не активного контрола, и не нужно получать его OWNER-а.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в: