1 votos

Activar el servidor de Airplay Receiver con la línea de comandos en MacOS Monteray+

El nuevo servicio de MacOS Airplay Receiver utiliza el puerto 5000. Me gustaría desactivarlo temporalmente durante la ejecución de un script. Este servicio se activa manualmente mediante una opción en Preferencias del Sistema > Compartir > Servicios > Airplay Receiver . El proceso que parece ejecutar el servicio es /System/Library/CoreServices/ControlCenter.app/Contents/MacOS/ControlCenter .

He investigado el defaults y algunas opciones de osascript pero no he podido encontrar los conjuros adecuados. La solución ideal se parece:

#!/bin/bash
toggle_airplay_receiver off
echo "Running my script and doing stuff on port 5000..."
toggle_airplay_receiver on
echo "All done, AirPlay Receiver works again :)"

Lo ideal es que haya una forma directa de iniciar y detener el servicio, pero también es aceptable un método de scripting de la guía de Preferencias del Sistema.

1voto

user3439894 Puntos 5883

pero también es aceptable un método de scripting de la guía de Preferencias del Sistema.

El ejemplo AppleScript código que se muestra a continuación, se probó como shell script en MacOS Monterey con Lengua y región ajustes en Preferencias del sistema ajustado a Inglés (EE.UU.) - Primaria y me ha funcionado sin problemas 1 .

  • 1 Asume los ajustes necesarios y apropiados en <strong>Preferencias del sistema </strong>> <strong>Seguridad y privacidad </strong>> <strong>Privacidad </strong>se han fijado/abordado según las necesidades.

Ejemplo AppleScript código :

#!/bin/bash

osascript <<EOS
tell application "System Preferences" to reveal pane id "com.apple.preferences.sharing"
tell application "System Events" to tell window 1 of application process "System Preferences"
    repeat until exists checkbox 1 of (first row of table 1 of scroll area 1 of group 1 whose value of static text 1 is "AirPlay Receiver")
        delay 0.1
    end repeat
    if value of checkbox 1 of (first row of table 1 of scroll area 1 of group 1 whose value of static text 1 is "AirPlay Receiver") as boolean then
        click checkbox 1 of (first row of table 1 of scroll area 1 of group 1 whose value of static text 1 is "AirPlay Receiver")
    end if
end tell
tell application "System Preferences" to quit
EOS

echo "Running my script and doing stuff on port 5000..."

osascript <<EOS
tell application "System Preferences" to reveal pane id "com.apple.preferences.sharing"
tell application "System Events" to tell window 1 of application process "System Preferences"
    repeat until exists checkbox 1 of (first row of table 1 of scroll area 1 of group 1 whose value of static text 1 is "AirPlay Receiver")
        delay 0.1
    end repeat
    if not value of checkbox 1 of (first row of table 1 of scroll area 1 of group 1 whose value of static text 1 is "AirPlay Receiver") as boolean then
        click checkbox 1 of (first row of table 1 of scroll area 1 of group 1 whose value of static text 1 is "AirPlay Receiver")
    end if
end tell
tell application "System Preferences" to quit
EOS

echo "All done, AirPlay Receiver works again :)"

Notas:

Esto requiere Terminal se añaden a Preferencias del sistema > Seguridad y privacidad > Privacidad > Accesibilidad y respondiendo inicialmente al "Terminal" quiere acceder al control de "Eventos del sistema". Permitir el control proporcionará acceso a los documentos y datos de "Eventos del sistema", y a realizar acciones dentro de esa app. cuadro de diálogo .

Tal y como está codificado, supone Preferencias del sistema se cierra inicialmente y no se abre a un panel modal De no ser así, será necesaria una codificación adicional.

0 votos

Realmente conoces tu osascript :)

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X