मैं एक सक्रिय विंडो को एक सक्रिय किए बिना और अन्य विंडो को सामने लाने के साथ एक विशिष्ट विंडो को कैसे केंद्रित करूं?


18

मैं वास्तव में एक "सक्रिय" करने के बिना एक आवेदन की एक विशिष्ट खिड़की का चयन / ध्यान केंद्रित करने के लिए एक विधि w / AppleScript की तलाश कर रहा हूं जो सभी खिड़कियों को सामने लाता है ।

यहाँ मेरे पास अभी तक क्या है:

tell application "Google Chrome"
    set windowTitle to title of first window whose title contains "whatever"
end tell
tell application "System Events" to tell process "Google Chrome"
    click menu item windowTitle of menu 1 of menu bar item "Window" of menu bar 1
end tell
tell application "Google Chrome" to activate    

समस्या अंतिम पंक्ति में "सक्रिय" है। यह सब कुछ सामने लाता है, लेकिन मैं सिर्फ एक खिड़की चाहता हूं।

जवाबों:


15

आप सही हैं कि activateकमांड सभी विंडो उठाती है। openशेल कमांड केवल एक खिड़की हालांकि जन्म देती है:

tell application "Google Chrome" to set index of window 1 where title contains "whatever" to 1
delay 0.05
do shell script "open -a Google\\ Chrome"

आह, यह महान है। यह करीब आता है, दुर्भाग्य से, यदि क्रोम पहले से ही "जो कुछ भी" विंडो पर केंद्रित है, वह केवल सामने की ओर चमकता है और वर्तमान में केंद्रित विंडो जीतता है। अगर मैं w / open -a के साथ "क्लिक मेनू आइटम" तकनीक का उपयोग करता हूं, तो यह काम करने लगता है, लेकिन इसके लिए पहुंच की आवश्यकता होती है। किसी भी विचार है कि चारों ओर पाने के लिए?
एरॉन जेनसन

1
बस अपनी दो पंक्तियों के बीच "देरी 0.05" जोड़ना पूरी तरह से काम करता है। एक बार फिर धन्यवाद!
एरोन जेन्सन

मैं इसे पुन: पेश नहीं कर सका, लेकिन आप भी कोशिश कर सकते हैं tell application "System Events" to tell process "Google Chrome" to perform action "AXRaise" of window 1
लैरी

3
मैं मिल रहा हूँ:execution error: The variable title is not defined. (-2753)
redolent

3
पुन: निष्पादन त्रुटि। बदलें titleकरने के लिए name
विघ्न
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.