dotnet-snippets.de
Willkommen bei dotnet-snippets.de! Snippet hinzufügen Login Registrieren
Snippets in der Datenbank: 1302 | Anzahl registrierter User: 1237 | Besucher online: 1
Hauptmenü
Home
Snippet Wettbewerb
Top Ten
Zufälliger Snippet
Vista Gadget
T-Shirts für Geeks
FAQs
Spenden mit PayPal
.NET Community
dotnet-forum.de
dotnet-kicks.de
Social
Facebook
Twitter
RSS Feeds
Rss Alle Snippets
Rss C#
Rss VB.NET
Rss C++
Rss Delphi.NET
Rss ASP.NET
Werbung
Alice DSL Flatrate

Partner
dotnetpro.powerdays 2010

Partner von Codezone.de


Member of Microsoft Community Leader/Insider Program (CLIP)

Klasse zum Erstellen von Screenshots


Autor: Jan Welker
Sprache: C#
Bewertung:
noch nicht bewertet

Anzahl der Aufrufe: 3721
  

Beschreibung:

Mit Hilfe dieser Klasse können Screenshots erstellt werden.

folgende Möglichkeiten bestehen:
- vollständiger Desktop
- aktives Fenster
- benutzerdefinierter Bereich
- anhand des Handels des Fensters

benötigte Namespaces:
System
System.Runtime.InteropServices
System.Drawing
System.Windows.Forms


Abgelegt unter: Screenshot.



C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
/// <summary>
/// Klasse zum erzeugen beliebiger Screenshots
/// </summary>
public class Screenshot
{
    public Screenshot()
    {
    }
   
    private struct RECT
    {
        public int Left;
        public int Top;
        public int Right;
        public int Bottom;
    }

    [DllImport("user32.dll")]
    private static extern bool GetWindowRect(IntPtr hWnd, out RECT lpRect);

    [DllImport("user32.dll")]
    private static extern int GetForegroundWindow();

    /// <summary>
    /// Erzeugt ein Screenshot vom gesamten Desktop.
    /// </summary>
    /// <returns>Bitmap</returns>
    public Bitmap WholeDesktop()
    {
        return CreateScreenshot(0, 0, Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);
    }
    
    /// <summary>
    /// Erzeugt ein Screenshot vom übergebenen Bereich.
    /// </summary>
    /// <param name="topleft">Punkt des Bereich oben - links</param>
    /// <param name="bottomRight">Punkt des Bereich unten - rechts</param>
    /// <returns>Bitmap</returns>
    public Bitmap UserDefined(Point topleft, Point bottomRight)
    {
        return CreateScreenshot(topleft.X, topleft.Y, bottomRight.X, bottomRight.Y);
    }

    /// <summary>
    /// Erzeugt ein Screenshot vom Fenster des übergebenen Handels
    /// </summary>
    /// <param name="windowhandle"></param>
    /// <returns>Bitmap</returns>
    public Bitmap UserDefinedWindowHandle(IntPtr windowhandle)
    {
        return CreateScreenshot(windowhandle);
    }

    /// <summary>
    /// Erzeugt ein Screenshot vom aktiven Fenster.
    /// </summary>
    /// <returns>Bitmap</returns>
    public Bitmap ActiveWindow()
    {
        return CreateScreenshot((System.IntPtr)GetForegroundWindow());
    }

    private Bitmap CreateScreenshot(int left, int top, int width, int height)
    {
        Bitmap bmp = new Bitmap(width, height);
        Graphics g = Graphics.FromImage(bmp);
        g.CopyFromScreen(left, top, 0, 0, new Size(width, height));
        g.Dispose();
        return bmp;
    }

    private Bitmap CreateScreenshot(IntPtr windowhandle)
    {
        RECT windowRectangle;
        GetWindowRect(windowhandle, out windowRectangle);
        return CreateScreenshot(windowRectangle.Left, windowRectangle.Top, windowRectangle.Right - windowRectangle.Left, windowRectangle.Bottom - windowRectangle.Top);
    }
Sie haben Fragen zu diesem Snippet oder brauchen Hilfe bei der .NET Entwicklung?
Freundliche und kompetente Entwickler helfen Ihnen gern weiter im Forum für .NET Entwicklung.



Kommentare:
(Zum Schreiben von Kommentaren bitte anmelden.)



Diese Snippets könnten für Sie interessant sein:

schlecht sehr gut
1 2 3 4 5 6 7 8 9 10
Nur angemeldete User können Snippets bewerten.



VisualBasic Profihandbuch für nur 5€!