Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.05.26;
Скачать: CL | DM;

Вниз

Помогите со снимком экрана.   Найти похожие ветки 

 
_Split_   (2003-03-30 17:52) [0]

Помогите со получением снимка определенной части экрана. Например середины экрана - квадрат 200 х 200.


 
dim- ©   (2003-03-30 18:12) [1]

Посмотри, взял где-то здесь.
procedure TForm1.Timer1Timer(Sender: TObject);
Var
Srect,Drect,PosForme:TRect;
iWidth,iHeight,DmX,DmY:Integer;
iTmpX,iTmpY:Real;
C:TCanvas;
Kursor:TPoint;

begin
If not IsIconic(Application.Handle) then begin
// Получаем координаты курсора
GetCursorPos(Kursor);
// PosForm представляет прямоугольник с
// координатами Form (image control).
PosForme:=Rect(Form1.Left,
Form1.Top,
Form1.Left+Form1.Width,
Form1.Top+Form1.Height);
//Показываем magnified screen
//если курсор за пределами формы.
If not PtInRect(PosForme,Kursor) then begin
// Далее код можно использовать для увеличения выбранной
// части экрана. С небольшими модификациями его можно
// использовать для уменьшения
// экрана
iWidth:=Image1.Width;
iHeight:=Image1.Height;
Drect:=Bounds(0,0,iWidth,iHeight);
iTmpX:=iWidth / (TrackBar1.Position * 4);
iTmpY:=iHeight / (TrackBar1.Position * 4);
Srect:=Rect(Kursor.x,Kursor.y,Kursor.x,Kursor.y);
InflateRect(Srect,Round(iTmpX),Round(iTmpY));
//Получаем обработчик(handle) окна рабочего стола.
C:=TCanvas.Create;
try
C.Handle:=GetDC(GetDesktopWindow);
//Передаём часть изображения окна в TImage.
Image1.Canvas.CopyRect(Drect,C,Srect);
finally
C.Free;
end;
end;
// Обязательно обрабатываем все сообщения Windows.
Application.ProcessMessages;
end; // IsIconic


 
SammIk ©   (2003-03-31 09:11) [2]

Пробуи
BitBit(DestDC: HDC; X, Y, Width, Height: Integer; SrcDC: HDC; XSrc, YSrc: Integer; Rop: Longint): Bool;

DestDC- Дескриптор канвы
X, Y- верхнии левыи угол снимка
Width, Height- ???(
SrcDC- Дескриптор канвы десктопа
XSrc, YSrc - куда встовлять(обычно 0,0)
Rop- флаг, тебе нужен CopySrc


 
Intell ©   (2003-03-31 20:39) [3]

Есть компонент, чтобы проще жить было. Если надо - мыло:
sergein@nojabrsk.ru



Страницы: 1 вся ветка

Текущий архив: 2003.05.26;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.013 c
7-83783
Жук
2003-03-19 10:39
2003.05.26
Имя компьютера


6-83629
dimonich
2003-03-24 15:17
2003.05.26
Отрубить инет через опр. время


14-83742
k2
2003-05-07 12:51
2003.05.26
Лечение наркомании


1-83601
Alexno
2003-05-14 15:05
2003.05.26
потоки


4-83787
Jack666
2003-03-25 17:53
2003.05.26
Как определить и установить последовательность запуска сервисов?