चयनात्मक प्ले / VLC और AppleScript के साथ iTunes


3

मेरे पास 5 बटन माउस है, और मैं वर्तमान में iTunes (USB ओवरड्राइव ऐप के साथ) में संगीत को चलाने / चलाने के लिए एक बटन का उपयोग कर रहा हूं। लेकिन कभी-कभी मैं वीएलसी का उपयोग कर रहा हूं (मैं बहुत से * के साथ अपने संगीत पुस्तकालय को खराब नहीं करना चाहता हूं), और क्योंकि मैं USB ओवरड्राइव में माउसबुटन को AppleScript असाइन कर सकता हूं, मैं एक स्क्रिप्ट लिखना चाहता हूं, जो विच प्रोग्राम रनिंग की जांच कर रहा है वर्तमान में। यदि आईट्यून्स, तो यह आईट्यून्स को प्ले / पॉज बताएगा, लेकिन जब वीएलसी चल रहा है तो वीएलसी को प्ले / पॉज करना बताएगा।

यह केवल ओटोमेटर में काम करता है, लेकिन जब मैं इसे स्क्रिप्ट या ऐप के रूप में सहेजता हूं और फाइंडर में लॉन्च करता हूं तो यह खराब हो जाता है। अगर वीएलसी नहीं चल रहा है तो इसे खोल देंगे। :( क्यों? और यह ऑटोमेटर में सही ढंग से क्यों काम करता है?

अब काम करता है:

on run {input, parameters}
    idle
    return input
end run

on idle
    set x to isAppLoaded("VLC")
    if x then
        tell application "VLC" to play
    end if
    set x to isAppLoaded("iTunes")
    if x then
        tell application "iTunes" to playpause
    end if
end idle

on isAppLoaded(app_name)
    tell application "System Events"
        set app_list to every application process whose name is app_name
        if the (count of app_list) > 0 then
            set x to true
        else
            set x to false
        end if
    end tell
    return x
end isAppLoaded

धन्यवाद! miqlas


यह कोड (और मेरा) ऑटोमेकर में बहुत अजीब व्यवहार करता है। मुझे किसी प्रकार के अनुकूलन पर संदेह है जो शुरू में सभी संदर्भित अनुप्रयोगों को सही से लॉन्च करता है, लेकिन ईमानदार होने के लिए, मुझे नहीं पता कि यह ऑटोमैटर में ऐसा क्यों व्यवहार करता है।
डैनियल बेक

जवाबों:


2

यह निम्नलिखित की तरह AppleScript Editor में मेरे लिए काम करता है, जिसे आप स्क्रिप्ट के रूप में सहेजने के लिए उपयोग कर सकते हैं (AppleScript मेनू के माध्यम से निष्पादित करें) या अनुप्रयोग:

on isAppLoaded(app_name)
    tell application "System Events" to set app_list to every «class pcap» whose name is app_name
    return ((count of app_list) > 0)
end isAppLoaded

if isAppLoaded("VLC") then tell application "VLC" to play
if isAppLoaded("iTunes") then tell application "iTunes" to playpause

यदि यह पहले से ही चल रहा है तो VLC शुरू नहीं होता (यह किसी फ़ाइल के लिए क्वेरी करता है अगर कोई भी लोड नहीं है)। 10.6.7 पर परीक्षण किया गया।

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