2010-05-12 12 views
7

के साथ मेनू आइटम राइट-क्लिक करें क्या कोई ऐप्पलस्क्रिप्ट प्राप्त करने के लिए कोई तरीका है जो आपके द्वारा डॉक आइकन पर राइट क्लिक करते समय आने वाले मेनू आइटम तक पहुंचने का कोई तरीका है?डॉक आइकन एक्सेस करना ऐप्पलस्क्रिप्ट

मैं MacOS X Snow Leopard पर अपने वेब ब्राउज़र के रूप में गूगल क्रोम का उपयोग करें:

विशेष रूप से, मुझे क्या करना चाहते हैं। मैं एक कीबोर्ड शॉर्टकट व्यसन हूं, और मैं कुछ भी करने के लिए कीबोर्ड शॉर्टकट बनाने के लिए क्विकसिल्वर का उपयोग करता हूं। एक नई वेब ब्राउज़र विंडो खोलने के लिए मैं सबसे आम चीजों में से एक है। लेकिन मैं अपने कार्यों को विभाजित करने के लिए अक्सर स्पेस का उपयोग करता हूं, जिन पर मैं वर्तमान में काम कर रहा हूं, और जब मैं एक त्वरित ब्राउज़र ट्रिगर के साथ एक वेब ब्राउज़र या वेब पेज खोलता हूं, तो रिक्त स्थान उस अंतिम स्थान पर स्विच करता है जिस पर मैंने क्रोम का उपयोग किया था और एक नया टैब खोलता था, जो अक्सर मुझे घंटों तक परेशान करता है क्योंकि यह मुझे एक अलग जगह पर लाता है और इस प्रकार एक अलग कार्य करता है। मैं इसे Google क्रोम आइकन पर राइट-क्लिक करके और "नई विंडो" विकल्प पर क्लिक करके ठीक कर सकता हूं, जो वर्तमान स्थान पर एक नई विंडो खुलता है। लेकिन ऐप्पलस्क्रिप्ट में, Google क्रोम के साथ कुछ भी करने के लिए, मुझे सबसे पहले जो करना है उसे सक्रिय करना है, जो मुझे मूल समस्या पर वापस लाता है! क्या कोई इस समस्या, ऐप्पलस्क्रिप्ट या अन्यथा समाधान के बारे में सोच सकता है? यह एक गंभीर समस्या बन गई है। जब मैंने फ़ायरफ़ॉक्स का उपयोग किया, तो मैंने एक वरीयता आइटम को बदलकर समस्या हल की जो "हमेशा एक नई विंडो में पॉप-अप लिंक खोलें" या ऐसा कुछ, जो एक स्लेज हथौड़ा दृष्टिकोण था, लेकिन यह काम करता था। मैं हमेशा फ़ायरफ़ॉक्स पर वापस जा सकता हूं, लेकिन मैंने सोचा कि मैं पहले यहां अपना प्रश्न पूछूंगा। किसी भी विचार के साथ कोई भी?

+0

बस पाया इस जबकि राइट क्लिक करें applescript उदाहरण के लिए देख - आप के रूप में बिल्कुल एक ही कारण के लिए । –

उत्तर

3

रुचि रखने वाले किसी भी व्यक्ति के लिए, मुझे लगता है कि मुझे इस समस्या का उचित समाधान समाधान मिला है, लेकिन इसमें डॉक आइकन पर राइट-क्लिक शामिल नहीं है।

सबसे पहले, आपको सिस्टम प्राथमिकताओं के रिक्त स्थान वरीयता फलक में "एप्लिकेशन पर स्विच करते समय, एप्लिकेशन के लिए खुली विंडो वाले स्थान पर स्विच करें" अनचेक करना होगा। तब मैंने लिखा निम्नलिखित AppleScript:

tell application "Google Chrome" to activate 

tell application "System Events" 
    tell process "Google Chrome" 
     try 
      set var to get name of window 1 
     on error 
      set var to "no window exists!!!" 
     end try 
    end tell 
end tell 

if var is "no window exists!!!" then 
    tell application "System Events" 
     tell process "Google Chrome" 
      click menu item "New Window" of menu "File" of menu bar 1 
     end tell 
    end tell 
else 
    tell application "System Events" 
     tell process "Google Chrome" 
      click menu item "New Tab" of menu "File" of menu bar 1 
     end tell 
    end tell 
end if 

मैं जो मुझे यह करने के लिए कोई शॉर्टकट कुंजी निर्दिष्ट कर सकते हैं इस AppleScript Spark का उपयोग कर, लांच।

यह थोड़ी धीमी है, खासकर जब सिस्टम लोड के नीचे होता है, लेकिन आमतौर पर चलाने के लिए एक सेकंड या उससे अधिक समय नहीं लगता है। यह फ़ायरफ़ॉक्स के साथ होने वाली समस्या से भी बचाता है, जहां मैं दिन के अंत में दर्जनों खिड़कियों के साथ खुलता हूं।

+0

मैंने पहले कभी भी pref फलक पर उस विकल्प को नहीं देखा था (नीचे छिपा हुआ) - इतना अच्छा। –

3

क्रोमियम नाइटली बिल्ड में अब ऐप्पलस्क्रिप्ट समर्थन शामिल है, और इसे लंबे समय से पहले क्रोम में बनाना चाहिए। इसका मतलब है कि तुम अब क्या कर सकते हैं:

tell application "Chromium" 
    make new window 
    activate 
end tell 
+0

सिर के लिए धन्यवाद! उम्मीद है कि यह जल्द ही स्थिर संस्करण में बना देगा; मैं वेब ब्राउजर के रूप में मौलिक के रूप में कुछ पर नाइटलीज़ के लिए ज्यादा नहीं हूं। –

14

सुनिश्चित नहीं हैं कि अगर आप अभी भी रुचि रखते हैं लेकिन ...

tell application "Dock" 
    activate 
end tell 
tell application "System Events" 
    tell process "Dock" 
     set frontmost to true 
     activate 
     tell list 1 
      perform action "AXShowMenu" of UI element "Google Chrome" 
      delay 1 
      repeat 4 times -- count number of items to the one you want 
       key code 126 -- up arrow 
       -- key code 125 -- down arrow 
      end repeat 
      delay 1 
      repeat 2 times 
       key code 36 -- return key 
      end repeat 
     end tell 
    end tell 
end tell 
+0

वास्तव में, काफी उपयोगी है। धन्यवाद –

+0

कोई समस्या नहीं है। मुझे काम के लिए कुछ ऐसा करना पड़ा और जब मैं इसका शोध कर रहा था तो मैं आपके प्रश्न पर आया लेकिन मुझे यकीन नहीं था कि आप अभी भी इसे देख रहे होंगे। – George

+0

अच्छा! इससे मुझे एक एडोब एयर एप्लिकेशन विंप को नियंत्रित करने में मदद मिली जो कि अपने मेनू आइटम को क्विक्सिलवर तक निर्यात नहीं करेगा जब तक कि यह सबसे पहला एप्लीकेशन न हो। –