सबसे पहले, जब आप प्रिंटरस्क्रीन या अन्य स्क्रीन कैप्चर तकनीकों का उपयोग करते हैं तो वीएलसी की सामग्री कैप्चर नहीं होती है क्योंकि (कम से कम विंडोज़ के पुराने संस्करणों पर) वे वीडियो प्रस्तुत करने के लिए 'ओवरले' का उपयोग कर रहे हैं। यह एक विशेष जीपीयू निर्माण है जो सामान्य स्क्रीन सतह के ऊपर एक आभासी 'विमान' को प्रतिपादन की अनुमति देता है। चूंकि यह सब कुछ छोड़ देता है और सीधे GPU पर जाता है, इसे कैप्चर करने का कोई सीधा तरीका नहीं है। नोट: विंडोज के आखिरी कुछ रिलीज में नियम ओवरले के बारे में काफी कुछ बदल गए हैं। ऐप्स यह नहीं मान सकते कि D3D9/DDraw ओवरले समर्थित हैं और ऐप्स को आजकल उनका उपयोग नहीं करना चाहिए क्योंकि सिस्टम में उच्च प्रदर्शन के साथ सामग्री प्रस्तुत करने के बेहतर तरीके हैं।
Direct3D 9 ओवरले
आप Direct3D 9 का उपयोग कर वीडियो सामग्री प्रदर्शित कर रहे हैं, तो आप भी एक उपरिशायी उपयोग कर सकते हैं। इसे कैसे करें इसके बारे में जानकारी के लिए this page on MSDN देखें। डी 3 डी 9 ओवरले के उपयोग पर बहुत से प्रतिबंध हैं और वे बहुत सारे हार्डवेयर पर समर्थित नहीं हैं, इसलिए मैं कुछ अन्य दृष्टिकोणों का वर्णन करूंगा।
यह तकनीक अन्य ऐप्स को आपके पता स्थान में इंजेक्शन देने और आपके उपहारों को कैप्चर करने से नहीं रोकती है। इसके अलावा, क्योंकि यह कुछ हार्डवेयर पर समर्थित नहीं है और कुछ कैप्चर एपीआई वास्तव में ओवरले अक्षम करते हैं, यह बहुत मजबूत सुरक्षा गारंटी प्रदान नहीं करता है।
GPU आधारित सामग्री संरक्षण
आप बहुत समय GPU सामग्री संरक्षण के बारे में जानने के लिए है और आप जानते हैं कि आप एक गैर मानक DRM- सुरक्षित वीडियो प्रारूप प्रदर्शित किया जाएगा, तो आप रोल कर सकते हैं अपने जीपीयू सामग्री संरक्षण का उपयोग कर अपने संरक्षित मीडिया पथ। मैं इस क्षेत्र में एक विशेषज्ञ नहीं हूं, और कुछ ऐसे हैं जो हैं। मैं इसकी सिफारिश नहीं करता, लेकिन मैं इसे इंगित करना चाहता था।यह कैसे Direct3D 9 में लागू हो जाता है के बारे में बात करती है This page on MSDN और यह कैसे Direct3D 11.
इस तकनीक है कि सामग्री, पर कब्जा कर लिया नहीं किया गया है के बाद से प्रमुख मुद्रा हार्डवेयर के माध्यम से लगभग पूरी तरह से होता है मजबूत की गारंटी देता है प्रदान करता है (का उपयोग कर लागू हो जाता है के बारे में बात करती है this other page उदाहरण के लिए एचडीसीपी)।
मीडिया फाउंडेशन संरक्षित मीडिया पथ (पीएमपी)
आप एक अच्छी तरह से समर्थित DRM आधारित मीडिया प्रारूप का उपयोग वीडियो प्रदर्शित कर रहे हैं, तो आप उपयोग कर सकते हैं मीडिया फाउंडेशन के संरक्षित मीडिया पथ, जो GPU- का उपयोग करता है आधारित सामग्री संरक्षण पहले वर्णित। यह एक अलग संरक्षित प्रक्रिया में अधिकांश कार्यक्षमताओं को भी समाहित करता है जो अन्य ऐप्स अवरुद्ध नहीं कर सकते हैं या अन्यथा बातचीत नहीं कर सकते हैं। किसी एक परीक्षण-हस्ताक्षरित ड्राइवर स्थापित है या नहीं तो एक द्विआधारी कि है एक विश्वसनीय रूट प्राधिकारी द्वारा कोड पर हस्ताक्षर नहीं इंजेक्षन करने की कोशिश करता, तो Windows सामग्री decrypted जा करने के लिए अनुमति नहीं दी जाएगी और अपनी सामग्री सुरक्षित रहेगा। यह तकनीक मजबूत प्रदान करती है कि सामग्री को कैद नहीं किया गया है। इसका उपयोग नेटफ्लिक्स द्वारा विंडोज, ब्लूरे प्लेयर और अन्य पर किया जाता है।
DXGI स्वैप श्रृंखला झंडे
मान लिया जाये कि आप Direct3D का उपयोग कर 10.x/11.x (और उम्मीद है कि अब आप कर रहे हैं, के रूप में 2014 में 9 D3D के लिए, का विरोध किया), आप एक का उपयोग कर सकते सामग्री प्रस्तुत कर रहे हैं अपनी सामग्री को लॉक करने के लिए अपने स्वैप-चेन पर झंडे की संख्या।
यदि सिस्टम में एचडीसीपी या एचडीसीपी जैसी आउटपुट सुरक्षा नहीं है तो स्वैप-चेन निर्माण में विफल होने के लिए आप स्वैप-चेन झंडे में DXGI_SWAP_CHAIN_FLAG_RESTRICTED_CONTENT
पास कर सकते हैं। यह संभवतः आपके उद्देश्यों के लिए आवश्यक नहीं है, लेकिन यदि आप एचडीएमआई या एनालॉग आउटपुट को कैप्चर करने वाले लोगों के बारे में चिंता कर रहे हैं तो यह अच्छा है।
झंडा आप निश्चित रूप से चाहते हैं DXGI_SWAP_CHAIN_FLAG_DISPLAY_ONLY
कहा जाता है। यह आपकी स्क्रीन-कैप्चर एपीआई को कभी भी आपकी स्वैप-चेन देखने से रोकता है। यह सिर्फ उनके लिए एक काले आयताकार के रूप में दिखाई देगा।
सभी DXGI स्वैप श्रृंखला झंडे के लिए this page देखें।
यह तकनीक मजबूत गारंटी प्रदान नहीं करती है कि GPU- आधारित सामग्री सुरक्षा प्रदान करता है, लेकिन यदि आप बहुत भरोसेमंद हैं कि अन्य ऐप्स पागल चीजें नहीं कर रहे हैं जैसे कि आप अपने पता स्थान में इंजेक्शन कर रहे हैं और अपनी वर्तमान कॉल को जोड़ रहे हैं, तो आप भरोसा किया जा सकता है यह किसी और को आपकी सामग्री को देखने से रोकता है (मॉनीटर को छोड़कर)।
पूर्ण खिड़की संरक्षण
कभी कभी आप बस DXGI-प्रस्तुत सामग्री की तुलना में अधिक की रक्षा के लिए चाहते हो सकता है। उस स्थिति में, आप वास्तव में एक पूरी तरह से एक पूरी तरह से खिड़की को विभिन्न स्क्रीन-कैप्चर तकनीकों द्वारा कब्जा करने से बचाने के लिए एक समान तंत्र का उपयोग कर सकते हैं। यह SetWindowDisplayAffinity
नामक एक एपीआई है। यह शक्ति और एक स्वैप-श्रृंखला के लिए DXGI_SWAP_CHAIN_FLAG_DISPLAY_ONLY
ध्वज पारित करने के लिए समारोह में बराबर है, लेकिन यह भी GDI के साथ प्रस्तुत सामग्री, बड़े DirectX प्रौद्योगिकियों, आदि किसी दिए गए HWND के लिए सुरक्षा सक्षम, या WDA_NONE
पारित करने के लिए सुरक्षा को निष्क्रिय करने के WDA_MONITOR
झंडा दर्रा की सुरक्षा ।
पूर्ण प्रकटीकरण के लिए, मैं टीम है कि स्क्रीन पर कब्जा और सामग्री संरक्षण के कुछ रूपों सहित प्रदर्शन तर्क, संभालती है पर माइक्रोसॉफ्ट में काम।
मैं WM_PRINTCLIENT साथ द्वारा प्राप्त करने के लिए tryed लेकिन मैं कभी नहीं मिला WM_PRINTCLIENT संदेश। मैं अपने आवेदन में संरक्षित ओवरराइड शून्य WndProc (सन्दर्भ संदेश मीटर) का इस्तेमाल किया मुख्य विंडो के को बाधित करना क्लिपबोर्ड functios काम नहीं करता है क्योंकि स्क्रीन सॉफ्टवेयर पर कब्जा करने पर कब्जा बिटमैप क्लिपबोर्ड कभी सुरक्षित नहीं करता है (विंडोज 7 को देखने के उदाहरण के लिए स्निपिंग टूल विकल्प)। – raisyn
@Youllknow: यदि आप CodeProject के लिए अंतिम लिंक देखते हैं, तो क्लिपबोर्ड के लिए एक हुक है ... क्योंकि मेरे पास विंडोज 7 नहीं है, मैं यह नहीं कह सकता कि यह कैसे काम करता है ... :) – t0mm13b
हां, लेकिन एक स्क्रीन है कैप्चरिंग सॉफ़्टवेयर (उदाहरण के लिए स्निपिंग टूल) क्लिपबोर्ड का उपयोग नहीं करता है। तो हुक कभी निष्पादित नहीं किया जाएगा! लेकिन आपकी मदद के लिए धन्यवाद !!! – raisyn