2009-03-10 14 views
5

Ich habe eine ASP.Net-Seite, die eine Schaltfläche hat, die wenn ich geklickt habe, möchte ich einen Screenshot des Benutzer-PC machen und es an einen Server senden.Holen Sie sich einen Screenshot von einer ASP.Net-Seite

Ich bin ok mit dem Schreiben einer Art von Listener-Programm auf dem Server ausgeführt werden, um Anforderungen zu akzeptieren, diese Bilder zu empfangen. Wo ich ein wenig verschwommen bin, ist der beste Weg, um den PC des Benutzers den Screenshot zu senden. Müsste dies getan werden, indem Sie eine Art Active X-Steuerelement für die ASP.Net-Seite schreiben? Es muss Cross-Browser und Betriebssystem wenn möglich sein.

Nur ein Punkt in die richtige Richtung und welche Technologien ich verwenden sollte, wäre großartig. Ich würde diese Funktionalität lieber selbst schreiben, wenn es möglich wäre, anstatt eine Out-of-the-Box-Lösung zu verwenden, da ich sehe, dass diese Funktionalität in der Zukunft erweitert werden kann. Wie schafft es etwas wie WebEx oder Copilot?

Dank

Gavin

Edit: Nur um es klar, ich bin nicht versuchen, Informationen von einem Benutzer-PC zu stehlen, würden sie diese Funktionalität ermöglichen haben, Sein mehr von einer Support-Sicht Wenn Kunden Probleme haben, können sie einen Screenshot der Seite senden, auf der sie sich befinden.

Antwort

4

Wenn es browserübergreifend sein muss, sollten Sie sich Java (Applets) ansehen. Es mag altmodisch klingen, aber ich denke es ist deine beste Wahl. ActiveX funktioniert auf Windows/IE nur;)

Für den Anfang, werfen Sie einen Blick auf diese Frage, die ganz ähnlich: Is there a way to take a screenshot using Java and save it to some sort of image?

+0

Wenn ich es in Java geschrieben, ich denke ich immer noch eine TCP-Verbindung zu einem C# Programm läuft auf dem Server öffnen konnte und es das Bild, das Art und Weise schicken? – Gavin

+0

Warum posten Sie das Binärpaket nicht einfach auf dem Server? –

+0

Wusste nicht, dass das möglich war, aber wenn es ist, klingt es wie die ideale Lösung. – Gavin

3

ActiveX funktionieren würde. Ich vermute, dass Sie möglicherweise etwas in Silverlight, Flash oder Java-Applet auch tun können (was mehr Cross-Browser-freundlich wäre).

Wie Kopilot läuft es in einer eigenständigen ausführbaren Datei, die jeder Benutzer herunterlädt und ausführt. Es ist also nicht auf typische Browserbeschränkungen beschränkt.

1

Es ist nur die Webseite, die Sie von einem Schnappschuss wollen?

Dann können Sie die gesamten Seiten gerendert html aus dem Javascript-Dokument-Objekt zugreifen und es an einen Webdienst senden zusammen mit Browser-Typ usw. Kein ActiveX :-) Installation erforderlich

+0

die Webseite gerendert HTML ist nicht das gleiche wie ein Screenshot. –

1

Ich benutze WebsitesScreenshot Komponente Website-Screenshot zu erfassen oder Miniaturbild. Diese .NET-Komponente ist sehr einfach zu bedienen. Ich liebe diese Komponente. http://www.websitesscreenshot.com/

Beispielcode:

WebsitesScreenshot.WebsitesScreenshot _Obj; 
_Obj = new WebsitesScreenshot.WebsitesScreenshot(); 

WebsitesScreenshot.WebsitesScreenshot.Result _Result; 
_Result = _Obj.CaptureWebpage("http://www.msn.com"); 

if (_Result == WebsitesScreenshot.WebsitesScreenshot.Result.Captured) 
{ 
    _Obj.ImageWidth = 200; 
    _Obj.ImageHeight = 300; 
    _Obj.ImageFormat = WebsitesScreenshot.WebsitesScreenshot.ImageFormats.PNG; 
    _Obj.SaveImage("c:\\msn.png"); 
} 
_Obj.Dispose(); 
+0

Dieses Tool kostet $$. – Justin