Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

screenshot kontrole sa forme

[es] :: .NET :: screenshot kontrole sa forme

[ Pregleda: 3231 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

sulja
Dejan Stojanovic
Pozarevac

Član broj: 1140
Poruke: 91
213.137.99.*

Sajt: www.anthill.co.rs


Profil

icon screenshot kontrole sa forme20.02.2006. u 16:04 - pre 200 meseci
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
 
Odgovor na temu

Oliver Klaćik
Vice President, Thunder Road Software
Inc.
Stara Pazova

Član broj: 34059
Poruke: 242
80.93.231.*

Sajt: www.thunderroadsoftware.c..


Profil

icon Re: screenshot kontrole sa forme20.02.2006. u 22:47 - pre 200 meseci
To možeš jedino učiniti pozivanjem neke Win32 GDI funkcije...
Oliver 'FAQ' Klaćik
 
Odgovor na temu

sulja
Dejan Stojanovic
Pozarevac

Član broj: 1140
Poruke: 91
213.137.99.*

Sajt: www.anthill.co.rs


Profil

icon Re: screenshot kontrole sa forme21.02.2006. u 08:08 - pre 200 meseci
Ok, ali kako, koju GDI funkciju, jel ima negde da se pogleda kod ili primer ?

[Ovu poruku je menjao sulja dana 21.02.2006. u 09:51 GMT+1]
 
Odgovor na temu

Oliver Klaćik
Vice President, Thunder Road Software
Inc.
Stara Pazova

Član broj: 34059
Poruke: 242
80.93.231.*

Sajt: www.thunderroadsoftware.c..


Profil

icon Re: screenshot kontrole sa forme21.02.2006. u 08:50 - pre 200 meseci
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?
Oliver 'FAQ' Klaćik
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6033



+4628 Profil

icon Re: screenshot kontrole sa forme21.02.2006. u 15:27 - pre 200 meseci
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 ).
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ć
 
Odgovor na temu

[es] :: .NET :: screenshot kontrole sa forme

[ Pregleda: 3231 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.