2008-09-02 8 views
19

का उपयोग कर मैक ओएस एक्स में स्क्रीनशॉट कैसे लें मैक ओएस एक्स में डेस्कटॉप क्षेत्र का प्रोग्रामशॉट कैसे लें?कोको या सी ++

उत्तर

3

क्यूटी में उदाहरण \ डेस्कटॉप \ स्क्रीनशॉट में एक उदाहरण स्क्रीनशॉट ऐप शामिल है। क्यूटी मैकोज़क्स सहित प्लेटफॉर्म की एक श्रृंखला पर काम करता है।

http://trolltech.com/products/qt/

0

आप REALbasic पर विचार करते हैं, तो इस आरबी और एमबीएस प्लगइन्स के साथ क्या करना बहुत आसान है। मैंने अभी एक एप्लीकेशन लिखा है जो आरबी और एमबीएस प्लगइन्स का उपयोग कर समय-समय पर स्क्रीनशॉट करता है। आप इसके बारे में यहां पढ़ सकते हैं: http://tektalkin.blogspot.com/2008/08/screenaudit-for-mac-osx.html

13

मैंने देखा है कि दो रोचक विकल्प, लेकिन अभी तक पेशेवर रूप से उपयोग करने के लिए, स्क्रीनकैप्चर उपयोगिता और मैकफ्यूज डेमो हैं।

मैन पेज के अनुसार स्क्रीनकैप्चर उपयोगिता 10.2 के आसपास रही है, और एनएसटीस्क के उपयोग से कोको एप्लिकेशन से जोड़ा जा सकता है।

मैकफ्यूज डेमो प्रत्येक फ़ोल्डर को खोले जाने पर हर बार एक नया स्क्रीनशॉट बनाकर काम करता था, या ऐसा कुछ। विचार यह है कि जब आप इसकी आवश्यकता होती है तो छवि को एक्सेस करने के लिए एक त्वरित स्क्रिप्ट लिख सकते हैं, स्क्रिप्ट वास्तव में उस मशीन पर चलने के बिना।

लेकिन गंभीरता से, ऐप्पल के पास "सोन ऑफ़ ग्रैब" नामक कुछ अन्य नमूना कोड है जो नए CGWindow API का उपयोग करता है जो बहुत बढ़िया है।

http://developer.apple.com/samplecode/SonOfGrab/

1

निम्नलिखित अगर आप सी ++ या अजगर के साथ यह पूरा करने के प्रयास कर रहे हैं उपयोगी हो सकता है। साथ ही, इस मामले में यह और भी सहायक होगा कि आप अपनी प्रोग्रामैटिक विधि को क्रॉस-प्लेटफार्म पोर्टेबल बनना चाहते हैं। (विंडोज़, लिनक्स, मैक ओएसएक्स, और इससे भी परे)

एक पूर्व प्रतिक्रिया क्यूटी का उल्लेख करती है।

उसी तरह क्यूटी आपको स्क्रीनशॉट को कैप्चर और सहेजने की अनुमति देगा, इसलिए एक और "प्रतिस्पर्धी" ढांचा, अर्थात् WxWidgets। WxWidgets एक सी ++ ढांचा है, लेकिन यह wxPython के माध्यम से अजगर बाइंडिंग भी प्रदान करता है।

http://books.google.com/books?id=CyMsvtgnq0QC&vq="accessing+the+screen+with+wxScreendc"

+1

धन्यवाद!यहां कोड है: wxBitmap GetScreenShot() { wxSize स्क्रीनसाइज = wxGetDisplaySize(); wxBitmap बिटमैप (screenSize.x, screenSize.y); wxScreenDC डीसी; wxMemoryDC memDC; memDC.SelectObject (बिटमैप); memDC.Blit (0, 0, screenSize.x, screenSize.y, और डीसी, 0, 0); memDC.SelectObject (wxNullBitmap); रिटर्न बिटमैप; } –

9

एक के बारे में जाने का रास्ता:

अधिक पढ़ने के लिए नीचे दिए गए लिंक, के लिए पुस्तक खोज wxScreenDC "पृष्ठ 139" पृष्ठों है कि खोज से मेल खाते की सूची में से उपयोग करें और चुनें ऐसा करने से 'स्क्रीनकैप्चर' कमांड लाइन कमांड के साथ एनएसटीस्क का उपयोग किया जाएगा।

उदाहरण के लिए:

NSTask *theProcess; 
theProcess = [[NSTask alloc] init]; 

[theProcess setLaunchPath:@"/usr/sbin/screencapture"]; 
// use arguments to set save location 
[theProcess setArguments:@"blahblah"]; 
[theProcess launch]; 

, जिसे आप फ़ाइल को खोलने सकता है जहाँ भी आप यह बताया बचाया जाए, यह प्रक्रिया, और आवश्यकतानुसार तो इसे हटा दें। जाहिर है, बंद करो, लेकिन यह काम करेगा।

8

यदि आप तेंदुए की अनुकूलता के साथ ठीक हैं, तो एक बहुत शक्तिशाली नया CGWindow API है जो आपको स्क्रीन शॉट्स, विंडो शॉट्स या विंडो परतों की किसी भी श्रेणी के कंपोजिट्स को पकड़ने देगा।

http://developer.apple.com/samplecode/SonOfGrab/

+0

उत्कृष्ट, इसे इंगित करने के लिए धन्यवाद! –