Sl@Sh |
Отправлено: 28.09.2004, 16:16 |
|
Мастер участка
Группа: Участник
Сообщений: 383
|
Привет всем ! Ребята, кто знает как получить Handle активного окна ?
Мне нужно делать скрины активного окна и для этого нужен его Handle.
Заранее спасибо
|
|
AVC |
Отправлено: 28.09.2004, 17:04 |
|
Ветеран
Группа: Модератор
Сообщений: 1583
|
Для текущего приложения, написанного на Builder
Screen->Forms[0]->Handle
|
|
Konstantine |
Отправлено: 28.09.2004, 17:09 |
|
Мастер участка
Группа: Модератор
Сообщений: 545
|
А для любого приложения? неизвесного происхождения...
|
|
Guest |
Отправлено: 28.09.2004, 17:27 |
|
Не зарегистрирован
|
WinApi: EnumWindows, FindWindow, FindWindowEx |
|
Gedeon |
Отправлено: 28.09.2004, 18:13 |
|
Ветеран
Группа: Модератор
Сообщений: 1742
|
CODE |
HWND GetForegroundWindow(VOID); |
QUOTE |
The GetForegroundWindow function returns a handle to the foreground window (the window with which the user is currently working). The system assigns a slightly higher priority to the thread that creates the foreground window than it does to other threads. |
|
|
timson |
Отправлено: 28.09.2004, 19:06 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 82
|
GetActiveWindow()
|
|
Sl@Sh |
Отправлено: 29.09.2004, 08:26 |
|
Мастер участка
Группа: Участник
Сообщений: 383
|
Большое спасибо всем за ответы !
|
|
Sl@Sh |
Отправлено: 01.10.2004, 08:13 |
|
Мастер участка
Группа: Участник
Сообщений: 383
|
Дескриптор получен ! Но как с его помощью узнать ширину и высоту окна (если возможно) ?
|
|
Gedeon |
Отправлено: 01.10.2004, 11:23 |
|
Ветеран
Группа: Модератор
Сообщений: 1742
|
QUOTE (Sl@Sh @ 01/10/2004, 09:15) | Дескриптор получен ! Но как с его помощью узнать ширину и высоту окна (если возможно) ? |
Возможно все. А вот лениво самому MSDN почитать.
CODE |
HWND Window;
Window = FindWindow("TAppBuilder",NULL);
if(!Window) ShowMessage("Not avialable");
// тут искомую инфу про окно и получаем
WINDOWINFO pwi;
pwi.cbSize = sizeof(WINDOWINFO);
GetWindowInfo(Window,&pwi);
// а вот тут и необходимые размеры
ShowMessage("Высота: " + AnsiString(pwi.rcWindow.bottom — pwi.rcWindow.top));
ShowMessage("Ширина: " + AnsiString(pwi.rcWindow.right — pwi.rcWindow.left)); |
Находим окно билдера и смотрим его размеры.
Отредактировано Gedeon — 01/10/2004, 12:26
|
|
Sl@Sh |
Отправлено: 01.10.2004, 15:58 |
|
Мастер участка
Группа: Участник
Сообщений: 383
|
Классно, но а если приложение сделано не в Билдере ?
|
|
Gedeon |
Отправлено: 04.10.2004, 13:07 |
|
Ветеран
Группа: Модератор
Сообщений: 1742
|
Да билдер тут ни при чем, просто я взял его окно для примера, чтоб знать, что оно точно есть, а так с любым будет работать, неужели тяжело было просто проверить, или что-то не работает?
|
|
Sl@Sh |
Отправлено: 23.10.2004, 19:08 |
|
Мастер участка
Группа: Участник
Сообщений: 383
|
to Gedeon :
Всё работает! Всё класс ! Спасибо за ответ ! Извини, что раньше не поблагодарил, просто попробовал то, что ты написал, недавно.
Я использую этот код в некоторой своей проге и планирую вписать тебя в благодарности. Вопрос : так и написать Gedeon или что-то другое ?
|
|
Gedeon |
Отправлено: 25.10.2004, 12:06 |
|
Ветеран
Группа: Модератор
Сообщений: 1742
|
Да так и напишите, если хочется, только лучше впишите ссылку на этот сайт.
|
|
Sl@Sh |
Отправлено: 25.10.2004, 13:06 |
|
Мастер участка
Группа: Участник
Сообщений: 383
|
to Gedeon :
OK
|
|