WinFuture-Forum.de: Screen Programm - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Screen Programm C#


#1 _Christopher_

  • Gruppe: Gäste

geschrieben 23. April 2005 - 15:43

Ich will ein progr. machen das wenn ich auf ein button klicke von meinen desktop ein scr. macht und der dann in einer pictureBox angezeigt wird ;) kann mir jemand weiter helfen?
0

Anzeige



#2 Mitglied ist offline   Koopatrooper 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.411
  • Beigetreten: 03. Mai 04
  • Reputation: 0

geschrieben 23. April 2005 - 15:47

Ich weiß zwar nicht was du mit PictureBox meinst, aber Programme zum Erstellen von Scrrenshots gibt es viele:

Hypersnap DX
FRAPS
0

#3 _Christopher_

  • Gruppe: Gäste

geschrieben 23. April 2005 - 15:50

MAN, das ist eine hilfe hier, du schlau meier , das weis ich selber das es davon schon viele gibt..;) aber ich will selber eins machen...deine weiteren komentare kannst du dir sparen

Edit by stefanra: Die Konsequenzen dieses Postings sollten klar sein.

Dieser Beitrag wurde von stefanra bearbeitet: 23. April 2005 - 15:56

0

#4 Mitglied ist offline   Koopatrooper 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.411
  • Beigetreten: 03. Mai 04
  • Reputation: 0

geschrieben 23. April 2005 - 15:53

Ich kann mich auch mal verlesen. Bei deiner arroganten Art, Leuten gegenüber, die dir helfen wollen, brauchst du dich nicht wundern, wenn dir keiner mehr helfen will. ;)
0

#5 Mitglied ist offline   constructor 

  • Gruppe: aktive Mitglieder
  • Beiträge: 112
  • Beigetreten: 18. April 05
  • Reputation: 0

  geschrieben 23. April 2005 - 16:24

Boah, was geht den hier ab ;)

Hier eine Klasse, die dich sicherlich weiterbringt. Musst sie halt an deine Bedürfnisse anpassen!
Quelle: c-sharpcorner.com


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

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

class User32
{
     
[DllImport("User32.dll")]
     
public static extern int GetDesktopWindow();
     
[DllImport("User32.dll")]
     
public static extern int GetWindowDC(int hWnd);
     
[DllImport("User32.dll")]
     
public static extern int ReleaseDC(int hWnd,int hDC);
}

class Example
{
     
public void CaptureScreen(string fileName,ImageFormat imageFormat)
     
{
           
int hdcSrc = User32.GetWindowDC(User32.GetDesktopWindow()),
            hdcDest
= GDI32.CreateCompatibleDC(hdcSrc),
            hBitmap
= GDI32.CreateCompatibleBitmap(hdcSrc,
            GDI32
.GetDeviceCaps(hdcSrc,8),GDI32.GetDeviceCaps(hdcSrc,10));
            GDI32
.SelectObject(hdcDest,hBitmap);
            GDI32
.BitBlt(hdcDest,0,0,GDI32.GetDeviceCaps(hdcSrc,8),
                            GDI32
.GetDeviceCaps(hdcSrc,10),
                            hdcSrc
,0,0,0x00CC0020);
           
SaveImageAs(hBitmap,fileName,imageFormat);
           
Cleanup(hBitmap,hdcSrc,hdcDest);
     
}
     
private void Cleanup(int hBitmap,int hdcSrc,int hdcDest)
     
{
           
User32.ReleaseDC(User32.GetDesktopWindow(),hdcSrc);
            GDI32
.DeleteDC(hdcDest);
            GDI32
.DeleteObject(hBitmap);
     
}      

     
private void SaveImageAs(int hBitmap,string fileName,ImageFormat imageFormat)
     
{
           
Bitmap image =
           
new Bitmap(Image.FromHbitmap(new IntPtr(hBitmap)),
                       
Image.FromHbitmap(new IntPtr(hBitmap)).Width,
                       
Image.FromHbitmap(new IntPtr(hBitmap)).Height);
            image
.Save(fileName,imageFormat);
     
}
}

0

#6 _Christopher_

  • Gruppe: Gäste

geschrieben 23. April 2005 - 16:32

OK ;) das nenne ich eine hilfe ;) vielen DANK ;)

Dieser Beitrag wurde von Christopher bearbeitet: 23. April 2005 - 16:32

0

#7 Mitglied ist offline   constructor 

  • Gruppe: aktive Mitglieder
  • Beiträge: 112
  • Beigetreten: 18. April 05
  • Reputation: 0

  geschrieben 28. April 2005 - 14:30

Hast du die Klassen mal getestet?
0

#8 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.712
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 28. April 2005 - 14:49

Zitat (constructor: 28.04.2005, 15:30)

Hast du die Klassen mal getestet?
<{POST_SNAPBACK}>


Ich hab das früher einmal ausprobiert und kann dir sagen, ja es klappt!

Dieser Beitrag wurde von Witi bearbeitet: 28. April 2005 - 14:49

witi@jabber.ccc.de 0xAAE321A2

50226 - Witis Blog
0

#9 _Christopher_

  • Gruppe: Gäste

geschrieben 28. April 2005 - 14:57

Ja, es geht, ich habe es mit einem Freund gemacht.Das Image wird
gespeichert..:cool: Wir haben nur ein Problem unzwar:
Das Image muss ich dann selber mit Jpg öffnen das heist, es wird nicht automatisch in Jpg gespeichert :cool: Aber das schaffe ich schon :lol: Danke

Dieser Beitrag wurde von Christopher bearbeitet: 28. April 2005 - 14:58

0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0