::: 델파이 Tip&Trick :::

델파이 Tip&Trick 성격에 맞지 않는 광고,비방,질문의 글은 즉시 삭제하며
내용을 복사하여 사용할 경우 반드시 이곳(http://www.howto.pe.kr)을 출처로 명시하여 주세요


Category

  김영대(2003-03-04 20:43:13, Hit : 4886, Vote : 1327
 화면캡처하기 Delphi3.0에서...


> 델파이 3.0에서
> 현재의 화면을 캡처하여 DB에 저장하려고 하는데
> 방법을 모르겠내요

안녕하세요  김영대입니다.
화면(DeskTop의 full screen)을 Capture하는 예제를 올립니다.
Capture하여 bmp 파일로 저장하는 예제입니다.
그리고 DB저장은 BLOB 필드를 다루는 내용이 많이 공개되어 있으니
생략합니다
그럼 좋은 결과 있기를 바랍니다.
(아래의 BitmapRect의 영역좌표를 바꾸면 DeskTop의 특정 영역만
Capture할 수 있습니다, full screen의 bmp 크기는 대략 938KB 입니다)


unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    SaveDialog1: TSaveDialog;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation
{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
var
  DeskTopDC:     HDc;
  DeskTopCanvas: TCanvas;
  BitmapRect:    TRect;
  Bitmap:        TBitmap;
begin
  try
    Bitmap        := TBitmap.Create; {BMP를 저장할 bitmap 생성}
    BitMap.Width  := Screen.Width;
    BitMap.Height := Screen.Height;
    BitmapRect    := Rect(0, 0, Screen.Width, Screen.Height);  {full screen 영역}

    {전체 window의 device context(DC) 을 얻는다}
    DeskTopDC     := GetWindowDC(GetDeskTopWindow);
    DeskTopCanvas := TCanvas.Create;
    DeskTopCanvas.Handle := DeskTopDC; {전체 window의 canvas를 얻습니다}

    // BitmapRect영역의 DeskTopCanvas에서 BitmapRect영역의 Bitmap.Canvas로
    // 복사받습니다
    Bitmap.Canvas.CopyRect(BitmapRect, DeskTopCanvas, BitmapRect);

    if SaveDialog1.Execute then
      Bitmap.SaveToFile(SaveDialog1.FileName);
  finally
    ReleaseDC(GetDeskTopWindow, DeskTopDC);
    DeskTopCanvas.Free;
    Bitmap.Free;
  end;
end;

end.






971   [네트웍/인터넷] Internet에 연결중인지 여부를 알려면...  김영대 2003/03/04 5378 1396
970   [윈도우즈 API] 델파이 3.0에서 한글변환을 하는법....  김영대 2003/03/04 6203 1487
969   [시스템] 떠 있는 프로그램 죽이기...  김영대 2003/03/04 6115 1467
968   [시스템] 다른 Application 생성과 소멸에 대하여...  김영대 2003/03/04 5015 1366
967   [윈도우즈 API] 도구모음 Bar는 어떻게 만드는지...  김영대 2003/03/04 4884 1386
966   [일반/컴포넌트] StringGrid의 Cell에 입력 값 제한 하기  김영대 2003/03/04 6333 1336
965   [데이터베이스] DB의 Blob필드에 화일을 저장하기  김영대 2003/03/04 5294 1288
964   [시스템] Windows NT 에서 한글 NT인지 영문 NT인지 구분하는 방법  김영대 2003/03/04 6947 1408
963   [시스템] 오직 하나의 프로그램만 실행...  김영대 2003/03/04 5250 1415
962   [데이터베이스] TBlobField에 대한 사용법  김영대 2003/03/04 5152 1325
961   [멀티미디어] TMedia Player에서 BMP파일로 저장하기(화면 capture)  김영대 2003/03/04 4764 1319
960   [일반/컴포넌트] StringGrid에서 Enter Key를 Tab Key와 같은 효과  김영대 2003/03/04 5447 1253
959   [데이터베이스] Stored Procedure 작성을 어떻게 하나  김영대 2003/03/04 5104 1334
958   [윈도우즈 API] 날짜변형에 대해서...  김영대 2003/03/04 5059 1274
957   [윈도우즈 API] 델파이에서 시간을 기다리는 함수  김영대 2003/03/04 6354 1413
956   [데이터베이스] DBGrid에서 MultiSelect된것 알아내려면...  김영대 2003/03/04 5807 1314
955   [윈도우즈 API] 외부 프로그램의 윈도우 크기 조절  김영대 2003/03/04 5368 1330
954   [윈도우즈 API] 클립보드로 복사  김영대 2003/03/04 5858 1471
953   [일반/컴포넌트] VB Left$(), Right$(), LTrim$() ...  김영대 2003/03/04 4983 1249
  [윈도우즈 API] 화면캡처하기 Delphi3.0에서...  김영대 2003/03/04 4886 1327
951   [데이터베이스] 엑셀자료를 읽어서 DB에 UPDATE  김영대 2003/03/04 5360 3603
950   [시스템] 프린터 상태가 Ready인지 아닌지 검사  김영대 2003/03/04 6086 1843
949   [데이터베이스] DBGrid 에서 선택된 필드의 타이틀을 굵게  김영대 2003/03/04 4911 1356
948   [윈도우즈 API] bitmap을 JPEG로 변환  김영대 2003/03/04 5117 1389
947   [데이터베이스] DBGrid의 Column, Record 의 위치 저장/이동  김영대 2003/03/04 10814 2170
946   [데이터베이스] ORACLE 나 SQL Server 에서 레코드 번호  김영대 2003/03/04 5211 1328
945   [윈도우즈 API] 키보드의 임의키 발생  김영대 2003/03/04 5588 1396
944   [데이터베이스] BDE 버전정보  김영대 2003/03/04 4224 1190
943   [일반/컴포넌트] 문자열의 암호화(Password 처리)  김영대 2003/03/04 4532 1134
942   [일반/컴포넌트] Image의 90도 회전  김영대 2003/03/04 5425 1216
941   [윈도우즈 API] 파일정보(생성,변경,접근일자,속성,종류...)  김영대 2003/03/04 5578 1307
940   [윈도우즈 API] 윈도우즈 탐색기와의 연동  김영대 2003/03/04 5844 1396
939   [시스템] 절약형 모니터의 켜기/끄기  김영대 2003/03/04 4856 1356
938   [시스템] 드라이브 포맷(Format) API 함수  김영대 2003/03/04 4876 1337
937   [일반/컴포넌트] virtual keys 리스트  김영대 2003/03/04 4292 1239
936   [윈도우즈 API] short/long file name 변환  김영대 2003/03/04 4359 1289
935   [일반/컴포넌트] 메뉴 아이템의 동적 추가와 그림넣기  김영대 2003/03/04 7842 1253
934   [윈도우즈 API] 파일의 확장명으로 실행화일 연결  김영대 2003/03/04 5160 1378
933   [시스템] CD-ROM 문 열기/닫기  김영대 2003/03/04 4915 1413
932   [일반/컴포넌트] QReport에서 출력된 자료를 Text화일로 저장  김영대 2003/03/04 4601 1267

1 [2][3][4][5][6][7][8][9][10]..[25] [다음 10개]
 

Copyright 1999-2021 Zeroboard / skin by zero