मैं एक चल रहे एप्लिकेशन के लिए विंडो सूची प्राप्त करना चाहता हूं। मैं [[NSWorkspace sharedWorkspace] runningApplications]
से चल रही एप्लिकेशन सूची प्राप्त कर सकता हूं, लेकिन विंडो सूची केवल NSApplication
पर उपलब्ध है। NSRunningApplication
से NSApplication
, या विंडो सूची को और अधिक सीधे प्राप्त करने के लिए कुछ तरीके से कनवर्ट करने का कोई तरीका है?NSRunning अनुप्रयोगों की खिड़कियां कैसे प्राप्त करें
उत्तर
आपको कोरग्राफिक्स कॉल CGWindowListCopyWindowInfo
पर देखने की आवश्यकता है।
आप इसे इस
CFArrayRef windowList = CGWindowListCopyWindowInfo(kCGWindowListOptionOnScreenOnly | kCGWindowListExcludeDesktopElements, kCGNullWindowID);
की तरह फोन और फिर खिड़की सूचना के सरणी पर पुनरावृति, जो कि आप में रुचि रखते हैं आवेदन से कर रहे हैं, और क्या आप इसके साथ चाहते हैं।
हे केन! यह एक अच्छा जवाब/संकेत है, लेकिन यह अभी भी नहीं बताता है कि 'सीजी/एनएसविंडो' कैसे प्राप्त करें ;-) 'NSRunning अनुप्रयोग 'विंडोज/विंडो नंबर प्रदान नहीं करता है और मैं कोशिश कर रहा हूं (शायद कुछ गलत कर रहा हूं) 'CGWindowListCopyWindowInfo' –
के साथ प्राप्त 'CGWindowID'' के साथ' NS/CGWindow' प्राप्त करने के लिए ऐसा इसलिए है क्योंकि आप किसी अन्य एप्लिकेशन के लिए NSWindow नहीं बना सकते हैं। जहां तक एक विशिष्ट अनुप्रयोग के लिए खिड़कियां मिल रही हैं, आप 'NSCunningAplication' की' प्रक्रिया पहचानकर्ता 'संपत्ति के लिए' केसीजीविंडोऑनरपीआईडी' कुंजी 'के मूल्य की जांच और तुलना कर सकते हैं। – mattsven
यहां एक ही प्रश्न है, पहले से ही उत्तर दिया गया है: http://stackoverflow.com/questions/2107657/mac-cocoa-getting-a-list-of-windows-using-accessibility-api –
यहां तक कि यहां http: // stackoverflow.com/questions/13759688/how-to-find-out-if-an-instance-of-my-app-is-already-running-or-not/13759928#13759928 –
विधवा सूची का अधिक सीधे अर्थ है? –