يوضح Sonofgrab واجهة برمجة تطبيقات CGWindow للاستيلاء على محتويات المجموعات التعسفية من النوافذ.
جوهر هذه العينة هي 5 طرق على فئة وحدة التحكم ، الموضحة أدناه.
-updateWindOwList تحصل هذه الطريقة على القائمة الحالية للنوافذ من خادم النوافذ. تتيح لك الخيارات في واجهة المستخدم الرسومية استبعاد Windows Offscreen وعناصر سطح المكتب. تتم معالجة القائمة التي يتم إرجاعها من خادم النوافذ (عبر رد اتصال WindowListApplierFunction) لإنتاج القائمة التي يتم تقديمها في واجهة المستخدم الرسومية.
-يقوم Createsinglewindowshot بإنشاء لقطة شاشة نسبة إلى cgwindowid المفردة التي يتم تمريرها. بناءً على "خيارات النافذة المفردة" المحددة في واجهة المستخدم الرسومية ، قد تتضمن لقطة الشاشة أي عدد من النوافذ الأخرى وقد تتضمن أو لا تتضمن النافذة التي تم نقلها فعليًا إلى هذه الطريقة.
-يقوم CreateMultiWindowShot بإنشاء لقطة شاشة باستخدام تلك النوافذ التي تم تمريرها بالضبط. يستخدم -ال createwindowlistfromselection لإنشاء cfarrayRef متوافق يحدد النوافذ لإنشاء صورة منها.
-يقوم CreatesCreenshot بإنشاء لقطة شاشة من جميع النوافذ التي هي حاليًا على الشاشة وقابلة للقراءة.
-createwIndOwListFromSelection يحول اختيار واجهة المستخدم الرسومية للنوافذ إلى cfarrayRef الذي يحدد القائمة الدقيقة للنوافذ لتقديمها والترتيب لتقديمها.
API CGWINDOW قادر على التعامل مع المشكلات الشائعة التي قد تصادفها في الممارسة العملية ، وإرجاعها بشكل عام إذا لم يكن من الممكن الاتصال بخادم النوافذ ، أو صورة شفافة كاملة عندما لا يمكن تكوين صورة من القائمة المقدمة. التعليقات في cgwindow.h تدخل تفاصيل رائعة في حالات الزاوية والمشكلات الأخرى التي قد تجدها في استخدام واجهة برمجة التطبيقات هذه وهي لا تقدر بثمن في فهم ما سيحدث في العديد من حالات الاستخدام الشائعة.
يوفر CGWindow API CGIMAGEREF الذي يتم إنشاء بيانات الدعم الخاصة به عند الطلب بواسطة خادم النوافذ عند تقديمه لأول مرة ، وبالتالي يمكنك طلب عدد كبير من الصور دون التقاط أداء حتى يتم تقديم الصورة. إذا كنت تلتقط عددًا كبيرًا من الصور ، فسترى الوقت اللازم لإنشاء تلك الصور التي يتم إنفاقها في عملية Windowserver ، ويجب أن تدرك أنه على الرغم من أن CGWIndOwlistcreatiMage ستعود بسرعة. من المحتمل أن يستهلك رسم الصورة لأول مرة وقتًا أكثر مما تتوقعه للحصول على صورة من مصادر أخرى.
يمكن تكوين رمز النماذج لوقت عملياته عن طريق تعيين ملف التعريف _window_grab إلى 1. يتم تفاؤل تعريف هذا الماكرو إلى 0 في ملف مصدر وحدة التحكم.
لمزيد من المعلومات حول CGWindow API ، راجع مرجع "Quartz Window Services" (https://developer.apple.com/library/mac/documentation/carbon/reference/cgwindow_reference/).
OS X 10.10 SDK أو لاحقًا
OS X 10.8 أو أحدث
الإصدار 2.0
الإصدار 1.0
================================================================================== =