Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 4 odgovora
  • 4.904 pregleda

Najnovija ↓

screenshot kontrole sa forme 20.02.2006. u 17:04 · pre 252 meseca #1
Da li je moguce nekako preko .Net koda uhvatiti samo screen shot kontrole na formi aplikacije, i ako jeste gde mogu da pogledam kod ?

Unapred hvala
Potpis
DEJ@N
Re: screenshot kontrole sa forme 21.02.2006. u 09:08 · pre 252 meseca
izmenjeno 1 put, poslednji put sulja 21.02.2006. u 09:51
  1. sulja21.02.2006. u 09:51zapis iz teksta poruke
#3
Ok, ali kako, koju GDI funkciju, jel ima negde da se pogleda kod ili primer ?
Potpis
DEJ@N
Re: screenshot kontrole sa forme 21.02.2006. u 09:50 · pre 252 meseca #4
Pogledaj ovde:

http://www.c-sharpcorner.com/U...005234547PM/ScreenCapture.aspx

A pade mi na pamet i ova varijanta, ako si u mogućnosti da koristiš Print Screen na tastaturi:

Code:

        If Clipboard.ContainsImage Then
            Dim b As Bitmap = CType(Clipboard.GetImage, Bitmap)
            b.Save("C:\1.bmp")
        End If


Btw, ne služi forum da dobiješ gotova rešenja, već da te neko uputi u pravom smeru. Ako ja treba da listam MSDN zbog tebe, koja je poenta?
Potpis
Oliver 'FAQ' Klaćik
Re: screenshot kontrole sa forme 21.02.2006. u 16:27 · pre 252 meseca #5
Decku treba screenshot kontrole, ne celog ekrana...

Primer koji je dat je ok, treba ga samo modifikovati da koristi HDC kontrole umesto HDC-a ekrana:

Code:

using System;
using System.Runtime.InteropServices;
using System.Drawing;
using System.Drawing.Imaging;
using System.Windows.Forms;

class GDI32
{
    [DllImport("GDI32.dll")]
    public static extern bool BitBlt(System.IntPtr hdcDest,int nXDest,int nYDest,int nWidth,int nHeight,System.IntPtr hdcSrc,int nXSrc,int nYSrc,int dwRop);
    [DllImport("GDI32.dll")]
    public static extern System.IntPtr CreateCompatibleBitmap(System.IntPtr hdc,int nWidth, int nHeight);[DllImport("GDI32.dll")]
    public static extern System.IntPtr CreateCompatibleDC(System.IntPtr hdc);
    [DllImport("GDI32.dll")]
    public static extern bool DeleteDC(System.IntPtr hdc);
    [DllImport("GDI32.dll")]
    public static extern bool DeleteObject(System.IntPtr hObject);
    [DllImport("GDI32.dll")]
    public static extern int SelectObject(System.IntPtr hdc, System.IntPtr hgdiobj);
}

class Export
{
    public static void SaveControlImage(Control ctrl, string path)
    {
        Graphics graph = Graphics.FromHwnd(ctrl.Handle);
        System.IntPtr ctrlHdc = graph.GetHdc();

        System.IntPtr hdcDest = GDI32.CreateCompatibleDC(ctrlHdc);
        System.IntPtr hBitmap = GDI32.CreateCompatibleBitmap(ctrlHdc, ctrl.Width, ctrl.Height); 
        GDI32.SelectObject(hdcDest, hBitmap);
        GDI32.BitBlt(hdcDest, 0, 0, ctrl.Width, ctrl.Height, ctrlHdc, 0, 0, 0x00CC0020);
        
        Bitmap bmp = new Bitmap(Image.FromHbitmap(hBitmap), ctrl.Width, ctrl.Height);
        bmp.Save(path, System.Drawing.Imaging.ImageFormat.Bmp);
        graph.ReleaseHdc(ctrlHdc);
        GDI32.DeleteDC(hdcDest);
        GDI32.DeleteObject(hBitmap);
    }
} 


pozivom Export.SaveControlImage prebacice se area koji kontrola zauzima u BMP fajl. Postoji samo jedan problem sa ovim, diaply HDC nije multi-layer, sto ce reci uradice snapshot onoga sto se trenutno nalazi na erkanu na tim pozicijama (ako je tvoja aplikacija pokrivena nekom drugom dobices sliku iz te druge aplikacije ;)).
Potpis
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog
naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji
je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan,
sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv - Z.Đinđić
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme