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

screenshot kontrole sa forme

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

[ Pregleda: 923 | Odgovora: 4 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

sulja
Dejan Stojanovic
Pozarevac

Član broj: 1140
Poruke: 69
213.137.99.*



Profil

icon screenshot kontrole sa forme20.02.2006. u 16:04

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
DEJ@N
20.02.2006. u 16:04 

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
To možeš jedino učiniti pozivanjem neke Win32 GDI funkcije...
Oliver 'FAQ' Klaćik
20.02.2006. u 22:47 

sulja
Dejan Stojanovic
Pozarevac

Član broj: 1140
Poruke: 69
213.137.99.*



Profil

icon Re: screenshot kontrole sa forme21.02.2006. u 08:08
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]
DEJ@N
21.02.2006. u 08:08 

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
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
21.02.2006. u 08:50 

mmix
Miljan Mitrovic
Software Architect
Pancevo, Srbija

Moderator
Član broj: 17944
Poruke: 1564
69.17.213.*



Profil

icon Re: screenshot kontrole sa forme21.02.2006. u 15:27
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 ).
▪ The word 'politics' is derived from the word 'poly', meaning 'many', and the word 'ticks', meaning 'blood sucking parasites' - Larry Hardiman
▪ If the good guy gets the girl, it's rated PG; if the bad guy gets the girl, it's rated R; and if everybody gets the girl, it's rated X
▪ Illegal aliens have always been a problem in the United States. Ask any Native American
21.02.2006. u 15:27 

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

[ Pregleda: 923 | Odgovora: 4 ]

Postavi temu Odgovori

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