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.942
  • 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

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