Форум: "Основная";
Текущий архив: 2006.02.26;
Скачать: [xml.tar.bz2];
ВнизКак получить изобр. окна, найдя его handle с помощью FindWindow? Найти похожие ветки
← →
Volf_555 (2006-01-27 02:33) [0]Как получить изображение (как при нажатие Alt+PrintScreen) окна, найдя его handle с помощью FindWindow?
← →
Джо © (2006-01-27 02:34) [1]Get[Window]Dc, BitBlt.
← →
Volf_555 (2006-01-27 02:50) [2]Пробывал следующим образом - окно находит, но изображение не получает:
procedure TForm1.Button1Click(Sender: TObject);
var
s:Integer;
a:TBitMap;
begin
a:=TBitMap.Create;
s:=FindWindow(nil,"Статистика Онлайн");
if s<>0 then
begin
ShowMessage("!!!");
GetWindowDC(s);
a.Canvas.Handle:=s;
Image1.Picture.Bitmap.Assign(a);
end;
end;
← →
Volf_555 (2006-01-27 02:58) [3]Пробывал следующий код:
procedure TForm1.Button1Click(Sender: TObject);
var
s:Integer;
a:TBitMap;
begin
a:=TBitMap.Create;
s:=FindWindow(nil,"Статистика Онлайн");
if s<>0 then
begin
ShowMessage("!!!");
BitBlt(GetDC(s),0,0,screen.Width,screen.Height,image1.Canvas.Handle,0,0,1);
end;
end;
В результатеImage1
заливается чисто белым цветом
← →
PKT (2006-01-27 04:13) [4]
var
Wnd: HWND;
DC: HDC;
R: TRect;
B: TBitmap;
begin
Wnd := FindWindow(nil, "Статистика Онлайн");
if Wnd <> 0 then begin
DC := GetWindowDC(Wnd);
if DC <> 0 then begin
GetWindowRect(Wnd, R);
B := TBitmap.Create;
B.Width := R.Right - R.Left;
B.Height := R.Bottom - R.Top;
BitBlt(B.Canvas.Handle, 0, 0, B.Width, B.Height, DC, 0, 0, SRCCOPY);
Image1.Picture.Assign(B);
end;
end;
end;
Если, конечно, "Статистика Онлайн" не перекрыта другими окнами.
← →
PKT (2006-01-27 04:22) [5]Прошу пардону,
конечно же B.Free и ReleaseDC
← →
Volf_555 (2006-01-27 21:37) [6]Написал следующее:
procedure TForm1.Button1Click(Sender: TObject);
var
Wnd: HWND;
DC: HDC;
R: TRect;
B: TBitmap;
begin
Wnd := FindWindow(nil, "Статистика Онлайн");
if Wnd <> 0 then begin
DC := GetWindowDC(Wnd);
ReleaseDc(Wnd,DC);
if DC <> 0 then begin
GetWindowRect(Wnd, R);
B := TBitmap.Create;
B.Width := R.Right - R.Left;
B.Height := R.Bottom - R.Top;
BitBlt(B.Canvas.Handle, 0, 0, B.Width, B.Height, DC, 0, 0, SRCCOPY);
Image1.Picture.Assign(B);
end;
B.Free;
end;
end;
Результат тот же - белое окно. По нажатии на кнопку форма становилась скрытой, запускался таймер, по таймеру происходило нажатие на кнопку на Button1, показывалась форма с результатом. Результат - белое окно....
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2006.02.26;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.034 c