स्क्रिप्ट एडिटर में काम करता है लेकिन ऐप के रूप में नहीं (MacOS Mojave)


1

निम्न स्क्रिप्ट स्क्रिप्ट संपादक में अपेक्षित रूप से काम करती है:

tell application "System Events"
    set nord to menu bar item 1 of menu bar 2 of application process "NordVPN IKE"
    ignoring application responses
        click nord
    end ignoring
end tell
do shell script "killall System\\ Events"
tell application "System Events"
    set nord to menu bar item 1 of menu bar 2 of application process "NordVPN IKE"
    tell menu 1 of nord
        if exists menu item "Disconnect" then
            click menu item "Disconnect"
        else
            click menu item "Connect"
        end if
    end tell
end tell

जब मैं इसे निर्यात करता हूं .appऔर इसे निष्पादित करने के लिए डबल क्लिक करता हूं, तो मुझे निम्नलिखित त्रुटि मिलती है:

आवेदन "सिस्टम इवेंट्स" के «नॉर्डवीपीएन आईकेई" के «क्लास मेन» 1 के «क्लास मैन» 1 के «क्लास मैन» के 1 नहीं पा सकते। अमान्य सूचकांक।

सिस्टम ईवेंट को एक त्रुटि मिली: आवेदन प्रक्रिया "मेन्यू बार" के मेन्यू बार 2 के मेन्यू बार आइटम 1 का मेनू 1 नहीं मिल सकता है। अमान्य सूचकांक। (-1719)

मैं स्क्रिप्ट को कैसे बदल सकता हूं ताकि यह एक के रूप में काम करे .app?

धन्यवाद


क्या यह मोजावे के तहत है? यदि ऐसा है, तो मुझे लगता है कि यह "संरक्षण" का कुछ प्रकार है जिसे ओएस सिस्टम इवेंट्स तक पहुँचने से (अहस्ताक्षरित?) ऐप को रोकने के लिए उपयोग कर रहा है, लेकिन स्क्रिप्ट एडिटर की अनुमति है क्योंकि यह एक हस्ताक्षरित / ज्ञात ऐप है। (यह एक कारण है कि मैं अब के लिए हाई सिएरा के साथ चिपका रहा हूं, Mojave इन प्रकार की चीजों के बारे में बहुत आक्रामक है।) यदि यह Mojave नहीं है, तो यह जानना अच्छा होगा कि macOS / OS X / Mac OS X का कौन सा संस्करण है। ।
टीजे लुओमा


मुझे खेद है कि लिंक बिल्कुल भी मदद नहीं करता है। कृपया मेरे प्रश्न के शीर्ष पर लगे बैनर को हटा दें। मैं इसे हर वह अनुमति देता हूं जो वह मांगता है। यदि आपके पास स्क्रिप्ट को संशोधित करने या इसे चलाने का एक तरीका है ताकि यह काम करे, तो यह एक स्वीकार्य उत्तर होगा।
कैट

tell application "NordVPN IKE" to activateअपने कार्यक्रम की शुरुआत में एक लाइन जोड़ने का प्रयास करें ।
abc

जवाबों:


0

इसे चलाने के लिए आपको दो काम करने होंगे:

सबसे पहले आपको यह सुनिश्चित करने की आवश्यकता है कि System Eventsएक्सेसिबिलिटी वरीयता फलक में खुद की अनुमति है।

दूसरे, आपको लोड करने के लिए समय देने के लिए मेनू आइटम पर क्लिक करने के बाद देरी करनी चाहिए। अंततः वह है जो सूचकांक त्रुटि का कारण बन रहा है, क्योंकि मेनू ने अभी तक प्रचार नहीं किया है और यह इसमें वस्तुओं तक पहुंचने की कोशिश कर रहा है। अपनी स्क्रिप्ट को निम्न में बदलें:

....
        click nord
    end ignoring
end tell
delay 0.3
do shell script "killall System\\ Events"
....
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.