कमांड लाइन के माध्यम से स्थिति खिड़कियां


0

मुझे मिल गया है थोड़ा सा माणिक सहेजे गए लेआउट के लिए आकार और रिपोजिशन विंडो। यह उपयोगकर्ता है AppleScript का एक स्निपेट वास्तव में स्थिति बनाने के लिए:

osascript -e 'tell application "Twitter" to set the bounds of the front window to {894, 22, 1604, 1049}'

हालांकि दो समस्याएं हैं:

  1. उदाहरण के लिए, जब मैं इसका उपयोग सेट करने के लिए करता हूं, तो यह हर ऐप के लिए काम नहीं करता है Gitbox , मुझे निम्नलिखित त्रुटि मिलती है:

    37:43: execution error: Gitbox got an error: Can’t get bounds of window 1. (-1728)
    
  2. उदाहरण के लिए, कुछ विंडो पोज़िशन को सहेजा नहीं गया है, अगर मैं स्क्रिप्ट को सबकुछ रिपीट करने के लिए चलाता हूं, तो मैं मैकविम विंडो को बंद कर देता हूं और एक नया खोल देता हूं, यह उस विंडो की स्थिति को याद नहीं रखेगा जो अभी बंद थी।

क्या खिड़कियों के आकार और स्थिति को निर्धारित करने का एक अधिक मजबूत तरीका है?

जवाबों:


6

आपके पास Gitbox को लेकर जो समस्या है, वह इसलिए है क्योंकि सभी एप्लिकेशन स्क्रिप्ट योग्य नहीं हैं। इसका मतलब है कि आप इसे एप्सस्क्रिप्ट के माध्यम से बात नहीं कर सकते। आप इस तरह के ऐप्स के लिए क्या कर सकते हैं, इसके लिए सिस्टम इवेंट का उपयोग करें।

* जांचें कि क्या स्क्रिप्ट योग्य है *

set theApp to "Gitbox"

tell application "System Events"

    set isScriptable to has scripting terminology of application process theApp

    if isScriptable then
        my scriptableApp(theApp)

    else
        my nonScriptableApp(theApp)

    end if
end tell
on scriptableApp(theApp)
    tell application theApp to get the bounds of the front window
end scriptableApp
on nonScriptableApp(theApp)
    tell application "System Events"
        set the props to get the properties of the front window of application process theApp
        set theSBounds to {size, position} of props
    end tell
end nonScriptableApp

सिस्टम ईवेंट के माध्यम से सीमा प्राप्त करें

#get the bounds via system events 

tell application "System Events"
    set the props to get the properties of the front window of application process "Gitbox"
    set theSBounds to {size, position} of props
end tell

सिस्टम ईवेंट के माध्यम से सीमा निर्धारित करें

--set theSBounds to {{799, 490}, {513, 430}} #This is a test line that will set the bounds list so you can see the set bound code working un comment to use it

#set the bounds via system events 
tell application "System Events"
    set size of front window of application process "Gitbox" to item 1 of theSBounds
    set position of front window of application process "Gitbox" to item 2 of theSBounds
end tell
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.