जब मैं इसे प्लग करता हूं, तो मैं USB ड्राइव से ऑटोरन फ़ाइलों को कैसे करता हूं?


2

मैंने दो .command फाइलें बनाई हैं, "लॉक" और "अनलॉक"। पहली छिपी हुई फ़ाइलों को छुपाता है: defaults write com.apple.Finder AppleShowAllFiles TRUE, फिर खोजकर्ता को ताज़ा करता है killall Finder। दूसरा विपरीत करता है, मैंने बस प्रतिस्थापित किया TRUE साथ में FALSE, पहले कमांड में।

मैं इनको एक USB थंब ड्राइव पर इस तरह से कॉपी करना चाहता हूं कि जब मैं इस USB को अपने लैपटॉप में प्लग करता हूं, तो यह "अनलॉक" फ़ाइल को स्वचालित रूप से निष्पादित करता है, और जैसे ही मैंने इसे अनप्लग किया, "लॉक" फ़ाइल मार डाला।

मुझे नहीं पता कि यह किस हद तक संभव है और इसमें क्या कमियां / समस्याएं हो सकती हैं, लेकिन किसी भी मदद या इनपुट की बहुत सराहना की जाती है। मैं भी केवल मनोरंजन के लिए ऐसा कर रहा हूं, इसलिए मैं प्रयोग करने के साथ पूरी तरह से ठीक हूं!


कीबोर्ड मेस्ट्रो 6 में स्पष्ट रूप से इस तरह की सुविधा है, लेकिन मैंने अभी तक इसका उपयोग नहीं किया है। घटनाएँ भी हैं: mousedown.net/mouseware/EventScripts.html जो आप देख रहे हैं वह करने में सक्षम हो सकता है।
TJ Luoma

जवाबों:


2

launchd सेवा वॉचपैथ विकल्प का समर्थन करती है, जो एक फ़ोल्डर की सामग्री को बदलने पर एक प्रोग्राम लॉन्च करती है:

वॉचपैथ & lt; स्ट्रिंग्स की सरणी & gt;        यदि कोई सूचीबद्ध पथ संशोधित हो, तो यह वैकल्पिक कुंजी कार्य प्रारंभ करने का कारण बनती है।

/ वॉल्यूम देखकर, एक शेल स्क्रिप्ट बनाई जा सकती है जो यह जांच करेगी कि आपकी बाहरी डिस्क माउंट की गई है या नहीं और उचित कमांड ° नंबर चलाएं।

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

° चरण यदि फाइंडर को मारने से बचने के लिए अंतिम निष्पादन के परिणाम को संग्रहीत करने के लिए एक अस्थायी फ़ाइल का उपयोग करना उचित होगा एक और डिस्क को [un] माउंट किया जाना था।


0

मुझे यह मज़बूती से काम करने के लिए नहीं मिला, लेकिन आप इस तरह से एक संपत्ति सूची को बचाने की कोशिश कर सकते हैं ~/Library/LaunchAgents/showall_external.plist:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC -//Apple Computer//DTD PLIST 1.0//EN http://www.apple.com/DTDs/PropertyList-1.0.dtd >
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>showall_external</string>
    <key>ProgramArguments</key>
    <array>
        <string>bash</string>
        <string>-c</string>
        <string>k=com.apple.Finder\ AppleShowAllFiles
sleep 3
if [[ -d /Volumes/WD/ ]]; then
    if [[ $(defaults read $k) = 0 ]]; then
        defaults write $k -bool true
        osascript -e 'quit app "Finder"'
    fi
else
    if [[ $(defaults read $k) = 1 ]]; then
        defaults write $k -bool false
        osascript -e 'quit app "Finder"'
    fi
fi</string>
    </array>
    <key>WatchPaths</key>
    <array>
        <string>/Volumes/WD/</string>
    </array>
</dict>
</plist>

इसके साथ लोड किया जा सकता है launchctl load ~/Library/LaunchAgents/showall_external.plist या लॉग आउट करके वापस अंदर जाएं।

स्लीप कमांड के बिना / वॉल्यूम / WD / कभी-कभी तब मौजूद होता है जब वॉल्यूम अनमाउंट किया जा रहा हो। प्रोग्राम तब भी चलाया जाता है जब / Volumes / WD / के तहत फाइलों को संशोधित किया जाता है, इसलिए यह कुंजी के वर्तमान मूल्य की जांच करता है। यदि यह पिछले 10 सेकंड में चलाया गया है, तो प्रोग्राम थ्रॉटल हो जाता है, इसलिए इसे चलाने से पहले 10 सेकंड तक की देरी हो सकती है।

विमान नियंत्रण जब कोई USB डिवाइस संलग्न होता है, तो एक स्क्रिप्ट चला सकता है, लेकिन मैं यह पता नहीं लगा सकता कि जब USB डिवाइस डिस्कनेक्ट हो जाता है या वॉल्यूम हटा दिया जाता है, तो स्क्रिप्ट कैसे चला सकता है।

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