के तहत प्रक्रिया का स्क्रीनशॉट हमें विंडोज़ सेवा से एक प्रक्रिया चलाना है और इससे स्क्रीनशॉट प्राप्त करना है।विंडोज सेवा
हमने बिटबल्ट और प्रिंटविंडो Win32 कॉल की कोशिश की, लेकिन दोनों खाली (काला) बिटमैप्स देते हैं।
यदि हम सामान्य कोड प्रक्रिया से अपना कोड चलाते हैं, तो यह ठीक काम करता है।
क्या यह कुछ भी संभव है? या कोशिश करने के लिए एक और तरीका हो सकता है?
बातें हम कोशिश की:
- Windows सेवा स्थानीय सिस्टम के रूप में चल रहा है, प्रक्रिया चलाता है के रूप में स्थानीय सिस्टम -> स्क्रीनशॉट विफल रहता है
- Windows सेवा प्रशासक के रूप में चल रहा है, प्रशासक के रूप में प्रक्रिया चलाता है -> स्क्रीनशॉट विफल रहता है।
- उपयोगकर्ता XYZ के रूप में चल रहे विंडोज एप्लिकेशन, XYZ के रूप में एक प्रक्रिया चलाता है -> स्क्रीनशॉट बिटबल्ट या प्रिंटविंडो दोनों के साथ काम करता है।
- जाँच स्थानीय सिस्टम से
हमने यह भी देखा है कि PrintWindow हमारे मामले के लिए बेहतर काम करता है "सेवा डेस्कटॉप के साथ बातचीत करने की अनुमति दें" की कोशिश की, यह काम करता है, तो खिड़की अन्य विंडो के पीछे है।
अन्य आवश्यकताओं के लिए, माता-पिता और बाल प्रक्रिया दोनों एक ही उपयोगकर्ता के अधीन होनी चाहिए। हम वास्तव में एक प्रक्रिया से दूसरे प्रक्रिया में प्रतिरूपण का उपयोग नहीं कर सकते हैं।
क्या आपने सेवा को डेस्कटॉप से बातचीत करने की अनुमति देने का प्रयास किया था? –
बहुत अच्छा विचार है, लेकिन यह या तो काम नहीं किया। मुझे यह भी लगता है कि जब मैं इसे प्रशासक उपयोगकर्ता के रूप में चलाता था, तो यह करने के बराबर था। आप उपयोगकर्ता कंसोल से "डेस्कटॉप के साथ बातचीत करने की अनुमति" की जांच नहीं कर सकते हैं - यह अक्षम है। – jonathanpeppers
खोज रहे हैं, यह भी देखें [सर्वर डेस्कटॉप सत्र पर स्क्रीन कैप्चर करें] (http://stackoverflow.com/questions/5200341/capture-screen-on-server-desktop-session/12851218) – Theraot