2015-06-09 25 views
7

सेट करने के लिए फ्लेक्स में Win32 API को कॉल करें मैंने एडोब एयर के साथ एक फ्लेक्स डेस्कटॉप एप्लिकेशन बनाया है। मुझे एप्लिकेशन को कैद होने से बचाने की आवश्यकता है। एप्लिकेशन के विंडो डिस्प्ले एफ़िनिटी को बदलकर, एप्लिकेशन को कैद होने से सुरक्षित किया जा सकता है। फ्लेक्स में जीत एपीआई का उपयोग कैसे करें? खिड़की को पकड़ने से बचाने के लिए कोई अन्य तरीका है?विंडो डिस्प्ले एफ़िनिटी

+0

क्या आपको लगता है कि मेरा जवाब कहता है कि आपको "एयर एक्सटेंशन" (एयर 3 के लिए) के रूप में सी डीएलएल बनाना है? – manuell

+0

यदि आप अन्य प्रक्रिया से setwindowdisplayaffinity को कॉल करते हैं, तो यह एक्सेस डेनिस लौटाता है। तो इसका कोई उपयोग नहीं होगा। – Vishnu

+0

डीएल एक एआईआर एक्सटेंशन होगा, जो आवेदन प्रक्रिया में चल रहा है। यहां "पहुंच से वंचित" नहीं है। – manuell

उत्तर

1

सबसे पहले आपको यह सुनिश्चित करना होगा कि मुख्य विंडो में WS_EX_LAYERED विंडोज शैली नहीं है। उस शैली को SetWindowDisplayAffinity कम से कम मेरी मशीन (सात प्रो 64 बिट्स) पर कोड 8 (ERROR_NOT_ENOUGH_MEMORY) के साथ विफल रहता है। अपने -app.xml file में, मान false पर के लिए <initialWindow> के तहत मान सेट करें।

दूसरा, आपको एप्लिकेशन प्रक्रिया में एक नियमित सी डीएलएल इंजेक्ट करने का तरीका चुनना है, क्योंकि एपीआई त्रुटि 5 (ERROR_ACCESS_DENIED) में विफल हो जाएगी यदि आप कॉलर प्रक्रिया में नहीं रह रहे विंडो के एफ़िनिटी को बदलने का प्रयास करते हैं।

एक संभावित इंजेक्शन विधि SetWindowsHookEx API का उपयोग कर रही है। Google आपको उस बारे में कई हिट देगा। कुछ विवरण पूछने के लिए स्वतंत्र महसूस करें। आपको स्पष्ट रूप से किसी अन्य प्रक्रिया के सहयोग की आवश्यकता है, (और कुछ Win32 एपीआई अभ्यास)।

एक और संभावित तरीका 'ACTIONSCRIPT® Extensions for ADOBE® AIR®' (PDF) कोडिंग कर रहा है।

बाद में बेहतर लगता है:

  • की जरूरत के लिए एक बाहरी प्रक्रिया से कोई सहयोग।
  • एडोब एयर आपके लिए डीएलएल लोडिंग करता है।
  • सी/सी ++ कोड अधिक सरल है।

मैं पहली तकनीक का इस्तेमाल किया, जैसा कि मैंने DLL के बारे में कच्चे Win32 एपीआई में अधिक धाराप्रवाह हूँ, की तुलना में मैं आकाशवाणी और कार्रवाई स्क्रिप्ट के साथ हूँ ...

मैं सफलतापूर्वक परीक्षण है कि एक बहुत ही सरल "के साथ पहली तकनीक हैलो वर्ल्ड "एयर डेस्कटॉप एप्लिकेशन, और प्रिंट स्क्रीन के बाद एक अच्छी" ऑल ब्लैक "छवि प्राप्त करें।

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