2010-01-21 10 views
5

मुझे यकीन है कि अगर यह AppleScript और/या स्वचालक के माध्यम से कर-सक्षम है नहीं कर रहा हूँ ... लेकिन मैं करने में सक्षम होना चाहते हैं:एप्लिकेशन में मेनू पर क्लिक करने के लिए ऐप्पलस्क्रिप्ट या ऑटोमेटर?

क) एक आवेदन पत्र (मैं जानता हूँ कि इस से बहुत आसानी से किया जा सकता है का शुभारंभ ऐप्पलस्क्रिप्ट या ऑटोमेटर)

बी) एप्लिकेशन लॉन्च होने के बाद, विशिष्ट मेनू आइटम का चयन करने के लिए AppleScript या Automator का उपयोग करें।

उदा। मैं एक्सेल 2008 लॉन्च करना चाहता हूं (मेरे पास घर/छात्र संस्करण है जो ऑटोमेटर के लिए पूर्व-कॉन्फ़िगर नहीं किया गया है) और फिर "फ़ाइल" मेनू पर क्लिक करें और "ओपन" पर क्लिक करें।

इस तरह के मेनू आइटमों को चुनने के लिए कहां जाना है/देखने के लिए कोई संकेतक (या यदि यह भी संभव है)?

आप ऑटोमेटर के रिकॉर्ड फ़ंक्शन का उपयोग करके ऐसा "सॉर्ट" कर सकते हैं, लेकिन रिकॉर्ड बहुत भंगुर है।

मैं ऐप्पलस्क्रिप्ट का उपयोग केवल "सरणी" को पकड़ने में सक्षम हूं जिसमें एप्लिकेशन के लिए प्रत्येक मेनू आइटम शामिल है और फिर प्रोग्रामेटिक रूप से मेरे सरणी में 0 वें मेनू आइटम पर क्लिक करें ... आदि। आदि

क्या यह संभव है?

TIA

उत्तर

0

मैं एक सरणी हथियाने के बारे में पता नहीं है, लेकिन इस तरह यह माउस क्लिक, आदि भेजने के लिए काम कर सकते हैं लग रहा है:

VirtualInput

1

यूआई पटकथा एक चंचल जानवर है। यह आपके नियंत्रण से परे कई चीजों के लिए भंगुर और अक्सर संवेदनशील है जैसे अप्रत्याशित संवाद (अन्य अनुप्रयोगों से), सिस्टम फ़ॉन्ट या भाषा में परिवर्तन, उपयोगकर्ता गतिविधि। संस्करणों में किसी एप्लिकेशन के UI में परिवर्तनों का उल्लेख नहीं करना है।

यह ऐप्पलस्क्रिप्ट एपीआई के माध्यम से सीधे एप्लिकेशन पर बात का उपयोग करने के लिए और अधिक मजबूत है। यह वास्तव में ऐप्पलस्क्रिप्ट का उद्देश्य है। आप ऐप्पलस्क्रिप्ट संपादक.एप के "ओपन डिक्शनरी ..." मेनू आइटम के माध्यम से ऐप्पलस्क्रिप्ट के माध्यम से एप्लिकेशन को प्रदान किए जा सकने वाले कार्यों और डेटा को हमेशा देख सकते हैं (उस फ़ाइल का चयन करें जिसे आप फ़ाइल संवाद में स्क्रिप्ट करना चाहते हैं)। माउस पर माउस को सिम्युलेट करने के बजाए, आप उस क्रिया को कॉल करते हैं जो मेनू आइटम सीधे AppleScript के माध्यम से ट्रिगर करता है।

बेशक सभी अनुप्रयोगों में एक पूर्ण (या यहां तक ​​कि कोई भी) AppleScript API नहीं है। हालांकि, एक्सेल में उत्कृष्ट ऐप्पलस्क्रिप्ट समर्थन है, यदि यह आपका लक्ष्य है।

  1. टेस्ट मॉडल (AppleScript के माध्यम से एप्लिकेशन के मॉडल को स्क्रिप्ट के अनुरूप):

    तुम सच में यूआई परीक्षण करने की कोशिश कर रहे हैं, तो मैं आपको अन्य विकल्पों के साथ शुरू की सलाह देते हैं। वास्तव में, यदि आप अपने ऐप में ऐप्पलस्क्रिप्ट एपीआई शामिल करते हैं, तो आप उस एपीआई के स्वचालित परीक्षण भी कर सकते हैं।

  2. प्रोग्रामिंग रूप से माउस या कीबोर्ड ईवेंट को अपने ऐप में भेजने के लिए Google Toolbox for Mac's यूनिट परीक्षण परिवर्धन (या अपना खुद का रोल करें) का उपयोग करें।
  3. UI अनुक्रम रिकॉर्ड करने के लिए Instruments.app का उपयोग करें। इंस्ट्रूमेंट्स रिकॉर्डिंग ठोस है (मैंने ऑटोमेटर की रिकॉर्ड फीचर का उपयोग नहीं किया है), और आपको इंस्ट्रूमेंट्स की सभी अन्य उपहार भी मिलती हैं।
+0

+1 बताओ। यदि एप्पलस्क्रिप्ट शब्दकोश में "ओपन" कमांड है, तो आप यूआई स्क्रिप्टिंग से इसका उपयोग कर बेहतर कर रहे हैं। यूआई स्क्रिप्टिंग किसी भी चीज़ से सिद्धांत में बेहतर काम करता है। –

3
tell application "###" 

activate 

end tell 


tell application "System Events" 

tell process "###" 

click menu item "^^^" of menu "$$$" of menu bar 1 

end tell 

end tell 

एक बार देख ले सकता है ### के लिए में अपने आवेदन रखो और के लिए अपनी मेनू आइटम डाल^^^ और $$$ के लिए अपना मेनू (फ़ाइल, संपादित करें, देखें, आदि) डालें। पूंजीकरण मामलें।

applescript में यह रखो btw

उदाहरण:

tell application "iTunes" 

activate 

end tell 


tell application "System Events" 

tell process "iTunes" 

click menu item "as list" of menu "view" of menu bar 1 

end tell 

end tell 

अंत TELL के बीच छोड़कर डबल स्थानों को हटा और आवेदन "प्रणाली घटनाओं"