نمایش نتایج 1 تا 7 از 7

نام تاپیک: عکس از desktop ویندوز

  1. #1
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    اصفهان - ایران
    پست
    294

    عکس از desktop ویندوز

    سلام
    چطوری میشه از صفحه desktop (یا یک پنجره خاص) عکس گرفت. نه با کلید print sceern با دستور نوشتن توی دلفی
    با تشکر

  2. #2
    GetDesktopWindow

  3. #3
    کاربر دائمی آواتار MiRHaDi
    تاریخ عضویت
    تیر 1383
    محل زندگی
    تهران - سوهانک
    پست
    982
    سلام
    اگه توضیحاتشم میخوای از Windows SDK Help بخون
    بای

  4. #4
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    اصفهان - ایران
    پست
    294
    مرسی
    ولی این دستور هندل به من میده. این رو چطوری میتونم به عکس تبدیل کنم؟

  5. #5
    procedure TForm1.ScreenShot(x: integer; y: integer; Width: integer; Height: integer; bm: TBitmap);
    var
    dc: HDC;
    lpPal: PLOGPALETTE;
    begin
    {test width and height}
    if ((Width = 0) or (Height = 0)) then
    begin
    exit;
    end;
    bm.Width := Width;
    bm.Height := Height;
    {get the screen dc}
    dc := GetDc(0);
    if (dc = 0) then
    begin
    exit;
    end;
    {do we have a palette device?}
    if (GetDeviceCaps(dc, RASTERCAPS) and RC_PALETTE = RC_PALETTE) then
    begin
    {allocate memory for a logical palette}
    GetMem(lpPal, sizeof(TLOGPALETTE) + (255 * sizeof(TPALETTEENTRY)));
    {zero it out to be neat}
    FillChar(lpPal^, sizeof(TLOGPALETTE) + (255 * sizeof(TPALETTEENTRY)), #0);
    {fill in the palette version}
    lpPal^.palVersion := $300;
    {grab the system palette entries}
    lpPal^.palNumEntries := GetSystemPaletteEntries(dc, 0, 256, lpPal^.palPalEntry);
    if (lpPal^.PalNumEntries <> 0) then
    begin
    {create the palette}
    bm.Palette := CreatePalette(lpPal^);
    end;
    FreeMem(lpPal, sizeof(TLOGPALETTE) + (255 * sizeof(TPALETTEENTRY)));
    end;
    {copy from the screen to the bitmap}
    BitBlt(bm.Canvas.Handle, 0, 0, Width, Height, Dc, x, y, SRCCOPY);
    {release the screen dc}
    ReleaseDc(0, dc);

    end;

    procedure TForm1.Button1Click(Sender: TObject);
    var
    bm : TBitmap;
    begin
    bm := TBitmap.Create;
    ScreenShot(0, 0, Screen.Width, Screen.Height, bm);
    bm.SaveToFile('c:\Test.bmp');
    Image1.Picture.Bitmap:=bm;
    bm.free;
    end;

  6. #6
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    اصفهان - ایران
    پست
    294
    مرسی :thnx: :thnx: :thnx: :thnx:

  7. #7
    کاربر تازه وارد
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    France
    پست
    56
    program GetScrnJpg;

    uses
    Windows, Graphics, jpeg;

    {$R *.RES}

    var
    B: TBitmap;
    S: string;

    begin

    B := TBitmap.Create;

    B.Width := GetSystemMetrics(SM_CXSCREEN); {Screen.Width}
    B.Height := GetSystemMetrics(SM_CYSCREEN); {Screen.Height}

    BitBlt(B.Canvas.handle, 0, 0, B.Width, B.Height, GetDc(0), 0, 0, SRCCOPY);


    if ParamStr(1) <> '' then
    S := ParamStr(1) + '.jpg'
    else
    S := 'Screen.jpg';

    with TJPEGImage.Create do
    begin
    Assign(B);
    CompressionQuality := 75;
    SaveToFile(S);
    free;
    end;

    B.Free;

    end.

تاپیک های مشابه

  1. استفاده از بانک sql به صورت desktop.
    نوشته شده توسط Rocker در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 2
    آخرین پست: سه شنبه 16 مرداد 1386, 07:12 صبح
  2. اجرای برنامه در حافظه و حذف آن از Desktop
    نوشته شده توسط amin110135 در بخش C#‎‎
    پاسخ: 7
    آخرین پست: دوشنبه 08 آبان 1385, 00:25 صبح
  3. اجرای برنامه پیش از اجرای desktop ویندوز
    نوشته شده توسط interrupt21 در بخش برنامه نویسی در Delphi
    پاسخ: 6
    آخرین پست: چهارشنبه 30 فروردین 1385, 13:16 عصر
  4. چگونه می توانیم مسیر Desktop کاربر را بدست بیاوریم
    نوشته شده توسط ماریا وکیلی در بخش برنامه نویسی در Delphi
    پاسخ: 6
    آخرین پست: پنج شنبه 19 آبان 1384, 08:03 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •