2010-08-09 19 views
6

के स्क्रीनशॉट को कैप्चर करना मेरे पास निम्न सी # कोड है, जिसका उपयोग मैं दूरस्थ डेस्कटॉप (आरडीपी) सत्र के अंदर एक स्क्रीनशॉट कैप्चर करने के लिए कर रहा हूं। सत्र सक्रिय होने पर यह ठीक काम करता है, लेकिन यदि मैं सत्र को कम करता हूं तो अमान्य हैंडल अपवाद के साथ विफल रहता है।एक न्यूनतम रिमोट डेस्कटॉप

क्या यह काम करने का कोई तरीका है, या स्क्रीन कम होने पर अनिवार्य रूप से "चला गया" स्क्रीन है?

string filename = @"C:\Snap.png"; 
Size bitmapSize = new Size(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height); 
using (Bitmap bitmap = new Bitmap(bitmapSize.Width, bitmapSize.Height, PixelFormat.Format24bppRgb)) 
using (Graphics graphics = Graphics.FromImage(bitmap)) 
{ 
    graphics.CopyFromScreen(// Exception thrown here 
     new Point(0, 0), 
     new Point(0, 0), 
     bitmapSize); 
    bitmap.Save(filename, ImageFormat.Png); 
} 
+0

क्या प्रोग्राम दूरस्थ मशीन या स्थानीय मशीन पर चल रहा है? – siride

+0

यह रिमोट मशीन पर चल रहा है। – ngoozeff

उत्तर

4

आपको अस्थायी रूप से विंडो को पुनर्स्थापित करना, कैप्चर करना और इसे कम करना है। This link shows how to do it silently

+0

यह काम करता है अगर मैं क्लाइंट पर स्क्रीनशॉट लेता हूं। मैं रिमोट सत्र के अंदर काम करता हूं जो कुछ पसंद करेंगे, लेकिन अगर कुछ और नहीं आता है तो मैं इसके साथ जाऊंगा। – ngoozeff

संबंधित मुद्दे