ऑसस्क्रिप्ट का उपयोग करके मैं सफारी में एक खुले टैब पर कैसे स्विच कर सकता हूं?


1

सफारी में टैब स्विच करने की कोशिश कर रहा है osascript। मैंने निम्नलिखित के कई संस्करणों की कोशिश की है:

osascript -e 'tell Application "Safari"' -e 'keystroke "2" using command down' -e 'end tell

"सिस्टम इवेंट्स" और "2" के साथ "-2" के साथ "सफारी" को बदलने की कोशिश की। लेकिन कुछ भी नहीं मैं काम कर रहा हूं। क्या कोई मुझे बता सकता है कि मैं क्या गलत कर रहा हूं?

जवाबों:


0

key code 19कमांड का उपयोग करें , क्योंकि keystroke "2"कमांड कुंजी कोड 19 के बजाय कुंजी कोड 84 (संख्यात्मक कीपैड) का अनुकरण करता है।

tell application "System Events" to key code 19 using command down

कुछ कुंजी के प्रमुख कोड जानने के लिए, इस एप्लिकेशन को डाउनलोड करें -> https://itunes.apple.com/us/app/key-codes/id414568915?mt=12


लेकिन, आपको सफारी में एक टैब का चयन करने के लिए GUI स्क्रिप्टिंग की आवश्यकता नहीं है , इस स्क्रिप्ट का उपयोग करें

tell application "Safari" to tell front window to set current tab to tab 2 -- this select the second tab

इन दोनों उदाहरणों का काम करने के लिए धन्यवाद। त्वरित प्रश्न - यदि कमांड एक ही समय में कमांड और अल्टीमेट जैसे 2 या अधिक कीबोर्ड संशोधक का उपयोग करता है, तो इसे कैसे बनाया जाएगा?
सीमस

कोई बात नहीं मैं समझ गया। मामले में किसी और को यह osascript -e 'tell application "System Events" to key code "19" using {option down, command down}' -e 'end tell'आपकी मदद के लिए धन्यवाद की जरूरत है ।
सीमस

@Seamus, आप का उपयोग करने की जरूरत नहीं -e 'end tell'है जब tellमें में बयान toप्रपत्र। दूसरे शब्दों में tell application "AppName" to ...एक की आवश्यकता को नकारता है end tell
user3439894

1

यह सिस्टम ईवेंट है जो कीस्ट्रोक को हैंडल करता है ।

सामान्य AppleScript में कोड की तरह दिखेगा:

tell application "Safari"
    activate
    delay 0.5
    tell application "System Events"
        key code 19 using command down
    end tell
end tell

एक के रूप में osascriptकमांड लाइन है, यह होगा:

osascript -e 'tell application "Safari" to activate' -e 'delay 0.5' -e 'tell application "System Events" to key code 19 using command down'

osascriptऊपर से आदेश पंक्ति स्पष्टता के लिए के रूप में कई पंक्तियों पर गौर करें:

osascript -e 'tell application "Safari" to activate' \
          -e 'delay 0.5' \
          -e 'tell application "System Events" to key code 19 using command down'

नोट: करने के लिए सिस्टम घटनाक्रम बता रहा से पहले keystroke , लक्ष्य की कीस्ट्रोक फोकस होना आवश्यक है। तो पहले, सफारी के साथ सबसे सामने वाली खिड़की बनाई जानी चाहिए activate। फिर आपको इसके लिए एक पल की अनुमति देना चाहिए कि कीप से पहले ध्यान केंद्रित किया जाए delay 0.5और इसके साथ किया जाए और इसके मूल्य को सेकंड या दशमलव अंशोंdelay में समायोजित किया जाए । तो एक बार सफारी सबसे सामने की खिड़की है, तो सिस्टम ईवेंट कीस्ट्रोक जारी कर सकता है ।

बेशक यह अनुमान है कि सफारी पहले से ही कम से कम एक खिड़की के साथ खुली है जिसमें दो टैब हैं!

सफारी के साथ प्रयोग किया जाने वाला कीस्ट्रोके एक सफारी 9 (एल कैपिटन) कीबोर्ड शॉर्टकट है जैसा कि इसमें दिखाया गया है: सफारी 9 (एल कैपिटन): सफारी कीबोर्ड और अन्य शॉर्टकट

अपने पहले नौ टैब कमांड -1 में से एक कमांड -9 चुनें


यह मेरे लिए काम नहीं कर रहा है। यह काम करता है अगर मैं मैन्युअल रूप से Cmd 2 दबाता हूं, लेकिन अन्यथा यह सफारी के सक्रिय होने के बाद उसी टैब पर रहता है। मैंने 4.0 के लिए देरी की कोशिश की और अभी भी कुछ नहीं।
सीमस

आप के तहत सफारी की सेटिंग में cmd-संख्या के माध्यम से टैब की स्थापना की अनुमति देनी होगी tabsसेटिंग
Haroen Viaene

मैंने उसे किया। यदि मैं मैन्युअल रूप से इसे कीबोर्ड पर धकेलता हूं तो यह ठीक काम करता है। लेकिन स्क्रिप्ट से कुछ नहीं होता है।
सीमस

@ सीमस, मैं एक सिस्टम पर नहीं बैठा हूं जो ओएस एक्स 10.11 और सफारी 9 चला रहा है, हालांकि बाद में आज मैं ओएस एक्स 10.11 के तहत यह परीक्षण कर सकता हूं। यह ओएस एक्स 10.8.5 के तहत काम करता है जब उचित कीस्ट्रोके को प्रतिस्थापित करता है और मैंने माना कि एक ही प्रतिमान काम करेगा, क्षमा करें। इसके अलावा delay4.0 होने की आवश्यकता नहीं है और आम तौर पर इसके अंश का 1 सेकंड पर्याप्त है।
user3439894

तुम्हारी सहायता सराहनीय है। हाँ 4 सेकंड की देरी ओवरकिल थी, लेकिन मैंने सोचा कि मैं इसे संभावना से बाहर करने की कोशिश करूँगा। अजीब है। यह अक्षर प्रेस के साथ एक ही प्रारूप का उपयोग करके ठीक काम करता है जैसे 'keystroke "a" using command down'कि मैं यह नहीं देखता कि यह कोई अलग क्यों होगा।
सीमस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.