2012-09-11 42 views
8

अरे मैं निम्न स्क्रिप्ट चल रहा हूँ:ओएस एक्स संदेश से एक संदेश प्राप्त होता है की कोशिश कर रहा डब्ल्यू/applescript

using terms from application "Messages" 
    on message received this_message from this_buddy for this_chat 
     display dialog "test" 
    end message received 
end using terms from 

लेकिन मैं निम्न त्रुटि संदेश में हर बार जब मैं एक संदेश मिलता है:

Event: Message Received in Active Chat 
File: registerToReceiveMessages.applescript 
Error: Error -1708 

मुझे इंटरनेट पर कहीं भी यह त्रुटि नहीं मिल रही है। यह सक्रिय चैट को छोड़कर हर चैट के लिए काम करता प्रतीत होता है। कोई विचार?

इसके अलावा, मैं के लिए घटनाओं को जोड़ने के लिए कोशिश कर रहा हूँ "संबोधित संदेश प्राप्त हुआ" लेकिन हर मैं संकलन applescript बदल देता है कि करने के लिए

+0

क्या आपने कभी यह पता लगाया है? –

+1

हाहा, यहां एक ही समस्या है। ऐप्पलस्क्रिप्ट, ऐसी आधुनिक अवधारणाओं वाली एक भाषा है लेकिन त्रुटि संदेशों के साथ जो आपको 1 9 80 के दशक की याद दिलाती है! – Feuermurmel

+0

त्रुटि "अनचाहे घटना" [रेफरी] (http://developer.apple.com/legacy/library/#documentation/Carbon/Reference/Apple_Event_Manager/Reference/reference.html) कहती है, लेकिन मुझे ईवेंट नहीं मिल रहा है सक्रिय चैट में प्राप्त संदेश के लिए – drinchev

उत्तर

0

मैं केवल जब काम करता है message received ईवेंट हैंडलर की तरह मुझे लग रहा है "दूरस्थ स्क्रीन साझेदारी निमंत्रण मिला" यह संदेश में ऐसा लगता है। मुझे थोड़ा अलग लिपि के साथ एक ही समस्या थी। किसी अन्य वेबसाइट पर एक और उदाहरण खोजने के बाद, इसे एक नई ऐप्पलस्क्रिप्ट संपादक विंडो में कॉपी-पेस्ट करना और इसे ऐप्पलस्क्रिप्ट फ़ाइल पर सहेजना संदेशों द्वारा ~/Library/Scripts/Messages पर कॉपी किया गया, यह काम करना शुरू कर दिया।

आपकी स्क्रिप्ट के साथ कोई समस्या नहीं प्रतीत होती है। यदि मैं अपनी वर्तमान स्क्रिप्ट को अपने कोड से प्रतिस्थापित करता हूं और स्क्रिप्ट को सहेजता हूं, तो यह अपेक्षित काम करता है, जिसमें test टेक्स्ट वाला एक संवाद प्रदर्शित होता है।

यह स्क्रिप्ट को केवल None पर चलाने के लिए और संदेश सेटिंग्स में बनाए गए स्क्रिप्ट पर सेट करने के लिए पर्याप्त हो सकता है।

7

आपको त्रुटि -1708 मिलेगी जब भी आपने ऐप्पलस्क्रिप्ट चुना है जो निर्दिष्ट ईवेंट को संभाल नहीं पाता है।

उदाहरण के लिए, यदि आपकी स्क्रिप्ट केवल on message sent लागू किया गया है, लेकिन आप हर बार जब आप एक संदेश प्राप्त चलाने के लिए इस स्क्रिप्ट निर्धारित करते हैं, आप त्रुटि -1708 मिल जाएगा। ऐसा इसलिए है क्योंकि आपकी स्क्रिप्ट केवल जानता है कि आउटगोइंग को कैसे संभालना है, आने वाले संदेशों को नहीं, इसलिए त्रुटि -1708।

अब यहाँ कुछ दिलचस्प आप घटनाओं Message Received, Message Received in Active Chat, और Message Sent के लिए डिफ़ॉल्ट स्क्रिप्ट Mix Message Case.applescript उपयोग करने के लिए प्रयास करते हैं है ...

। पहला और आखिरी काम ठीक है, लेकिन आपको सक्रिय चैट ईवेंट के लिए -1708 त्रुटि मिलेगी। हम यह समझ सकते हैं कि इसका मतलब है कि स्क्रिप्ट घटना Message Received in Active Chat को संभाल नहीं रही है। और ऐसा लगता है कि ऐप्पल अभी भी इस घटना को संभाल नहीं सकता है।

ओएस एक्स मावेरिक्स अद्यतन:

यह अद्यतन पहले उल्लेख बग ठीक करता है। यदि आप ऐप्पल की नमूना स्क्रिप्ट का चयन करते हैं ईवेंट बोलें। एप्पलस्क्रिप्ट, आप देखेंगे कि यह सक्रिय चैट रूम में प्राप्त संदेशों को बिना किसी त्रुटि के संभालता है। यदि आप कोड की जांच करते हैं, तो आप देखेंगे कि यह on active chat message received विधि का उपयोग कर रहा है। अब हम अपनी स्क्रिप्ट में इसका उपयोग कर सकते हैं। चूंकि मेरे पास पुराना संस्करण स्थापित नहीं है, इसलिए मैं यह जांच नहीं कर सकता कि यह वही विधि पिछले संस्करण में काम करती है या नहीं।

यहां Speak Events से कोड है।सेबस्क्रिप्ट:

on active chat message received with eventDescription 
    say eventDescription 
end active chat message received 

यह भी ध्यान दें कि आप विशिष्ट घटनाओं के लिए व्यक्तिगत स्क्रिप्ट को चलाने के लिए कैसे निर्दिष्ट नहीं करते हैं। इसके बजाय, आप संदेश ईवेंट के लिए एक स्क्रिप्ट हैंडलर निर्दिष्ट करते हैं। इसका मतलब है कि -1708 विधियों से बचने के लिए आपको सभी घटनाओं को लागू करना होगा। ध्यान दें कि नमूना स्क्रिप्ट में कैसे, ऐप्पल की टिप्पणी भी # The following are unused but need to be defined to avoid an error है।

using terms from application "Messages" 
    # The following are unused but need to be defined to avoid an error 

    on message sent theMessage with eventDescription 
    end message sent 

    on message received theMessage with eventDescription 
    end message received 

    on chat room message received with eventDescription 
    end chat room message received 

    on active chat message received with eventDescription 
    end active chat message received 

    on addressed message received theMessage from theBuddy for theChat with eventDescription 
    end addressed message received 

    on received text invitation with eventDescription 
    end received text invitation 

    on received audio invitation theText from theBuddy for theChat with eventDescription 
    end received audio invitation 

    on received video invitation theText from theBuddy for theChat with eventDescription 
    end received video invitation 

    on received local screen sharing invitation from theBuddy for theChat with eventDescription 
    end received local screen sharing invitation 

    on buddy authorization requested with eventDescription 
    end buddy authorization requested 

    on addressed chat room message received with eventDescription 
    end addressed chat room message received 

    on received remote screen sharing invitation with eventDescription 
    end received remote screen sharing invitation 

    on login finished with eventDescription 
    end login finished 

    on logout finished with eventDescription 
    end logout finished 

    on buddy became available with eventDescription 
    end buddy became available 

    on buddy became unavailable with eventDescription 
    end buddy became unavailable 

    on received file transfer invitation theFileTransfer with eventDescription 
    end received file transfer invitation 

    on av chat started with eventDescription 
    end av chat started 

    on av chat ended with eventDescription 
    end av chat ended 

    on completed file transfer with eventDescription 
    end completed file transfer 

end using terms from 

आप इस स्क्रिप्ट के साथ शुरू और केवल तरीकों की जरूरत है (जबकि बाकी बरकरार छोड़कर) लागू है, तो आप सब -1708 से बचना चाहिए: यहाँ जो स्क्रिप्ट के लिए एक प्रारंभिक बिंदु के रूप में इस्तेमाल किया जा सकता एक टेम्पलेट है त्रुटियों।