![]() |
|
|||||||
| Newsgroup microsoft.public.de.german.entwickler.dotnet.csharp Forum microsoft.public.de.german.entwickler.dotnet.csharp |
![]() |
|
|
Themen-Optionen | Ansicht |
|
|
|
#1
|
|||
|
|||
|
Hallo,
ich möchte in meinem Webinterface jede 30 Sekunden einen verkleinerten Screenshot von meinem Bildschirm anzeigen. Wie kann man das realisieren, dass ich meinetwegen in der Größe 80px x 45px ein Bild meines Bildschirms erstelle und schicke? Gibt es da schon irgendwo gute Ansätze? Beeinflusst die Erstellung von Screenshots und das senden an einen Webservice evtl. die Belastung meines Rechners? Gruss Dirk |
|
#2
|
|||
|
|||
|
Hallo Dirk,
> ich möchte in meinem Webinterface jede 30 Sekunden einen verkleinerten > Screenshot von meinem Bildschirm anzeigen. Wie kann man das realisieren, > dass ich meinetwegen in der Größe 80px x 45px ein Bild meines Bildschirms > erstelle und schicke? Machbar ist das ohne weiteres, allerdings ist die Auflösung extremst klein, aber das musst Du wissen,... > Gibt es da schon irgendwo gute Ansätze? Schau mal hier: http://www.google.de/search?hl=de&so...ta=&aq= f&oq= Ohne Ende Treffer! > Beeinflusst die Erstellung von Screenshots und das senden an einen > Webservice evtl. die Belastung meines Rechners? Das hängt maßgeblich von der Leistung deines Rechners ab und von der allgemeinen Kapazität des Systems und der Infrastruktur in der Du die Daten und Berechnungen ausführen lässt,...aber i.d.R. sind solche Sachen auch mit geringer Leistung sehr gut machbar,... Grüße Kerem -- ----------------------- Beste Grüsse / Best regards / Votre bien devoue Kerem Gümrükcü Latest Project: http://www.pro-it-education.de/software/deviceremover Latest Open-Source Projects: http://entwicklung.junetz.de ----------------------- |
|
#3
|
|||
|
|||
|
Dirk Herwig schrieb:
> ich möchte in meinem Webinterface jede 30 Sekunden einen verkleinerten > Screenshot von meinem Bildschirm anzeigen. Wie kann man das realisieren, > dass ich meinetwegen in der Größe 80px x 45px ein Bild meines > Bildschirms erstelle und schicke? Erstellen des Bildschirmphotos: Graphics.CopyFromScreen Method (System.Drawing) <URL:http://msdn.microsoft.com/en-us/library/system.drawing.graphics.copyfromscreen.aspx> -- M S Herfried K. Wagner M V P <URL:http://dotnet.mvps.org/> V B <URL:http://dotnet.mvps.org/dotnet/faqs/> |
|
#4
|
|||
|
|||
|
Hallo Dirk,
> ich möchte in meinem Webinterface jede 30 Sekunden einen verkleinerten > Screenshot von meinem Bildschirm anzeigen. Wie kann man das > realisieren, dass ich meinetwegen in der Größe 80px x 45px ein Bild > meines Bildschirms erstelle und schicke? Zunächst kommt es darauf an, welchen Bild-Bereich Du meinst. Gesamter Screen des primären Bildschirms, nur die Working Area (etwa ohne Leisten), oder alle Screens zusammen etc.. Hier ein Beispiel für die WorkArea: private void Form1_Load(object sender, EventArgs e) { Image imp = GetScreenShot(300, 200); imp.Save("test.bmp", ImageFormat.Bmp); imp.Dispose(); Process.Start("test.bmp"); } /// <summary>Gibt ein Screenshot-Image Bildschirms, in /// dem sich die aktuelle Applikation befindet, in der gewünschten /// Größe zurück.</summary> Image GetScreenShot(int width, int height) { Size area=Screen.GetWorkingArea(this).Size; Bitmap bmpScreenShot = new Bitmap(area.Width, area.Height); Graphics g = Graphics.FromImage((Image)bmpScreenShot); g.SmoothingMode = SmoothingMode.AntiAlias; g.CopyFromScreen(0, 0, 0, 0, area); g.Dispose(); return bmpScreenShot.GetThumbnailImage( width, height, null, IntPtr.Zero); } ________ > Beeinflusst die Erstellung von Screenshots und das > senden an einen Webservice evtl. die Belastung meines Rechners? alles beeinflusst letztlich, aber GetScreenShot benötigt hier ca. 100 Millisekunden auf handelsüblichen PCs (je nach width und height). Wenn das nur alle 30 Sekunden aufgerufen wird, sollte das normal akzeptabel sein. Allerdings könnten hohe Werte von "width" und "height" in der Methode Deinen Arbeitsspeicher überlasten, jedoch willst Du ja nur kleine Ausschnitte, deswegen auch da: ok. ciao Frank -- Dipl.Inf. Frank Dzaebel [MCP/MVP C#] http://Dzaebel.NET |
|
#5
|
|||
|
|||
|
Hallo Frank und Dirk,
"Frank Dzaebel" wrote > Zunächst kommt es darauf an, welchen Bild-Bereich Du > meinst. Gesamter Screen des primären Bildschirms, > nur die Working Area (etwa ohne Leisten), oder > alle Screens zusammen etc.. Wenn es sich nur um eine bestimmte Anwendung handeln sollte, von der Screenshots gemacht werden sollen und der Rechner unter Vista/Seven mit aktiviertem AERO läuft, könnte man die Thumbnails auch mit dem Desktop Window Manager API erstellen: Programming the Windows Vista DWM in C# http://bartdesmet.net/blogs/bart/arc...0/05/4495.aspx Herzliche Grüße Arne |
|
#6
|
|||
|
|||
|
Hallo Arne,
> Wenn [...] und wenn [...] könnte man die Thumbnails auch mit dem Desktop > Window Manager API erstellen: DWM Thumbnails sind für den Fall des OP-Szenarios nicht geeignet. (Ich hatte trotzdem überlegt, ob ich ihn darauf hinweise). DWM Thumbnails sind keine statischen Snapshots eines Fensters, sondern sind für sehr dynamische Szenarien und schnelles Bild-Tracking geschaffen. Infolgedessen müssen sie auch erstmal registriert (und später deregistriert) werden, nebst dem Umstand, dass halt nur bestimmte OS das unterstützen. Letztlich ist der Overhead, das Bild ständig tracken zu müssen (was zwar der DWM übernimmt, aber nicht ohne Aufwand ist) nicht notwendig, denn sowas braucht man eher in Szenarien, wo sehr oft und schnell (Millisekunden) das Thumbnail angezeigt werden muss. Günstig allerdings, dass intern ggf. nicht über WM_PAINT gearbeitet wird. Einige Wrapper für Thumbnails sind übrigens auch in: [Windows® API Code Pack for Microsoft® .NET Framework - Home] http://code.msdn.microsoft.com/WindowsAPICodePack enthalten. Aber wie gesagt, das ist hier nicht nötig, ich würde da lieber den geposteten Code nehmen. ciao Frank -- Dipl.Inf. Frank Dzaebel [MCP/MVP C#] http://Dzaebel.NET |
|
#7
|
|||
|
|||
|
Hallo,
besten Dank für das Beispiel. Genau so habe ich es gebraucht. Woher wisst Ihr das alles? Mal noch eine Frage dazu. Die Thumbnails dienen dazu, das wir sehen was auf unseren Presentationsrechnern läuft. Über eine Webseite (ASPX) sollen die Thumbnails angezeigt werden. Das bekomme ich alles hin auf der Webseite, jedoch tue ich mich noch schwer mit dem Transport zum Webserver (Win2003, IIS). Muss ich die Bilder erst lokal zwischenspeichern oder kann ich diese direkt auf den Webserver übertragen? Könnt ihr mir dabei noch einmal helfen? Danke Dirk |
|
#8
|
|||
|
|||
|
Hallo,
besten Dank für das Beispiel. Genau so habe ich es gebraucht. Woher wisst Ihr das alles? Mal noch eine Frage dazu. Die Thumbnails dienen dazu, das wir sehen was auf unseren Presentationsrechnern läuft. Über eine Webseite (ASPX) sollen die Thumbnails angezeigt werden. Das bekomme ich alles hin auf der Webseite, jedoch tue ich mich noch schwer mit dem Transport zum Webserver (Win2003, IIS). Muss ich die Bilder erst lokal zwischenspeichern oder kann ich diese direkt auf den Webserver übertragen? Könnt ihr mir dabei noch einmal helfen? Danke Dirk |
|
#9
|
|||
|
|||
|
Hallo,
besten Dank für das Beispiel. Genau so habe ich es gebraucht. Woher wisst Ihr das alles? Mal noch eine Frage dazu. Die Thumbnails dienen dazu, das wir sehen was auf unseren Presentationsrechnern läuft. Über eine Webseite (ASPX) sollen die Thumbnails angezeigt werden. Das bekomme ich alles hin auf der Webseite, jedoch tue ich mich noch schwer mit dem Transport zum Webserver (Win2003, IIS). Muss ich die Bilder erst lokal zwischenspeichern oder kann ich diese direkt auf den Webserver übertragen? Könnt ihr mir dabei noch einmal helfen? Danke Dirk |