Jak uruchomić aplikację po zamontowaniu określonej płyty za pomocą Automatora


Odpowiedzi:


1

Opracowując odpowiedź ShooTerKo na temat przepełnienia stosu (do którego prowadzi Volodymyr Kulyk) napisałem następujący skrypt, który kontynuuje przepływ pracy, jeśli zostanie znaleziona nazwa wyzwalacza. W ten sposób faktyczne uruchomienie (lub dowolną inną akcję Workflow) można przenieść poza Applescript:

  1. Utwórz nową akcję Automatora typu Akcja folderu
  2. Wybierz folder Volumes w swoim systemie jako dane wejściowe, klikając Inne ... w menu rozwijanym Wybierz folder , naciskając Cmd + Shift + G i wpisując/Volumes
  3. Jako pierwsze działanie wybierz opcję Wykonaj skrypt jabłkowy
  4. Użyj następującego skryptu i zmień, YOUR_VOLUME_NAMEaby dopasować do swoich potrzeb:

    on run {input, parameters}
    
        -- define the volume name and the application to start
        set triggeringVolumeName to "YOUR_VOLUME_NAME"
    
        -- walk through all newly mounted volumes
        repeat with aMountedVolumeAlias in input
    
            -- get the volume name from the given alias
            tell application "System Events" to set mountedVolumeName to name of aMountedVolumeAlias
    
            -- compare the volume name with the defined trigger name
            if mountedVolumeName is triggeringVolumeName then
    
                -- continue workflow
                return input
    
            end if
    
        end repeat
    
        -- if repeat finished without match, cancel workflow
        error number -128
    
    end run
    
  5. Dodaj inne działania do przepływu pracy, np. Poproś o potwierdzenie , Kopiuj elementy Findera lub Uruchom aplikację

0

Otwórz Automator i utwórz nową akcję folderu.

Wybierz folder do obejrzenia. W moim przykładzie jest to napęd instalacyjny Mavericks o nazwie SystemUSBMav .

Następnie dodaj Uruchom aplikację z biblioteki Automatora i wybierz aplikację do uruchomienia.

Zapisz akcję folderu jako Uruchom na górze .

Działanie folderu


Drugim podejściem jest agent uruchamiający:

Utwórz plik local.user.mountonlaunch.plist w ~ / Library / LaunchAgents o następującej treści:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>local.user.mountonlaunch</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/bin/open</string>
        <string>/Applications/Utilities/Disk Utility.app</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>WatchPaths</key>
    <array>
        <string>/Volumes/SystemUSBMav</string>
    </array>
</dict>
</plist>

Załaduj plik z:

launchctl load /Users/user_name/Library/LaunchAgents/local.user.mountonlaunch.plist

Minusem obu podejść jest to, że aplikacja zostanie uruchomiona także po wysunięciu dysku / woluminu lub modyfikacji plików w katalogu głównym woluminu. Możesz obejść ten drugi, tworząc zablokowany, „fałszywy” folder obserwacyjny na woluminie.


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.