Сейчас на форуме: tyns777, JustLife, zds, 2nd, morgot, Rio, CDK123, tihiy_grom (+4 невидимых)

 eXeL@B —› Программирование —› Картинка в чужом окне. Как достать?
Посл.ответ Сообщение

Ранг: 2.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 30 января 2009 22:44
· Личное сообщение · #1

Сабж. В окне есть единственая картинка. Знаю хэндл окна. Как достать её?
Знаю что нужно найти хэндл image и послать api.
Желательно небольшой пример на delphi.

P.S. Знаю что тут сидят умные люди, поэтому и обратился сюда



Ранг: 301.4 (мудрец), 194thx
Активность: 0.170.01
Статус: Участник

Создано: 30 января 2009 23:02
· Личное сообщение · #2

через GetDC и с него уже читай BitBlt вроде



Ранг: 2.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 31 января 2009 00:04
· Личное сообщение · #3

BitBlt( Canvas.Handle, 0, 0, Width, Height, WinDC, 0, 0, SRCCOPY);
Функцию вроде нашел. Откуда выдернуть параметры Width, Height?
GetDC(HWND) Вернет мне значение хэндла от image?




Ранг: 533.6 (!), 232thx
Активность: 0.450
Статус: Uploader
retired

Создано: 31 января 2009 00:37
· Личное сообщение · #4

Novicek пишет:
Откуда выдернуть параметры Width, Height?

воспользуйся ф-ей GetWindowRect
Code:
  1. var
  2.   rec: TRect;
  3.   Width, Height: integer;
  4. begin
  5.   GetWindowRect(Form1.Handle, rec);
  6.   Width := rec.right - rec.left;
  7.   Height := rec.bottom - rec.top;


-----
Лучше быть одиноким, но свободным © $me





Ранг: 756.3 (! !), 113thx
Активность: 0.610.05
Статус: Участник
Student

Создано: 31 января 2009 13:58
· Личное сообщение · #5

Да не факт, что ты её вообще достанешь...
Может она тупо отрисована по пиксельно
Если только полностью скрин окна делать, а потом обрезать границы по изменению цветности

-----
z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh




Ранг: 2.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 31 января 2009 14:56
· Личное сообщение · #6

GetWindowRect(Form1.Handle, rec);
Width := rec.right - rec.left;
Height := rec.bottom - rec.top;
Что то не тот участок копирует




Ранг: 533.6 (!), 232thx
Активность: 0.450
Статус: Uploader
retired

Создано: 31 января 2009 15:13
· Личное сообщение · #7

Novicek пишет:
Что то не тот участок копирует

вместо Form1.Handle, нужно написать хендл того окна с какого копируешь, или же воспользуйся GetClientRect, чтобы получить размеры клиентской области

-----
Лучше быть одиноким, но свободным © $me




Ранг: 226.0 (наставник), 67thx
Активность: 0.160
Статус: Участник

Создано: 02 февраля 2009 10:45
· Личное сообщение · #8

Можно писать лоадер и хукать BitBlt или StretchBlt.


 eXeL@B —› Программирование —› Картинка в чужом окне. Как достать?
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати