0 votos

AppleScript para conectar el Magic Mouse en el iMac

Me gustaría escribir un AppleScript que conecte mi Magic Mouse 2. Básicamente, en palabras, me gustaría un script que aparezca en "Servicios" que abra las preferencias del sistema, vaya a Bluetooth, encuentre el dispositivo Magic Mouse 2 y conecte este dispositivo. Ten en cuenta que en mis dispositivos Bluetooth tengo tanto un Bluetooth Mouse 4.0 como un Magic Mouse 2.

He intentado utilizar Automator a través del comando de registro, pero el proceso no funciona bien. Creo que si escribiera un AppleScript para hacer esto, podría compilarlo como una acción rápida y permitirme hacer esta acción desde mi Touch Bar.

He investigado esto y no puedo encontrar un script existente así que quiero intentar escribir uno yo mismo. Soy nuevo tanto en el Mac como en AppleScript, así que me está llevando mucho tiempo. He pedido un libro de AppleScript, pero mientras tanto quería ver si podía obtener algunos consejos de este sitio, que es muy útil.

0 votos

¿Has probado mi script de abajo? Algunos comentarios serían útiles.

2voto

qarma Puntos 71

Parece que sabes cómo crear un sistema de Servicio o Acción rápida , y sólo necesita un script para abrir la conexión bluetooth real. Pruebe el script de abajo inicialmente en script Editor que requiere que cualquier dispositivo al que quieras conectarte ya haya sido emparejado (parece que este es el caso). Si todo va bien, puedes estar razonablemente seguro de que funcionará si lo traspasas a un Automatizador flujo de trabajo (si primero te deshaces de cualquier código de muestra que aparezca, es decir on run {input, parameters} etc.

use framework "Foundation"
use framework "IOBluetooth"

property this : a reference to the current application
property nil : a reference to missing value
property _1 : a reference to reference

property IOBluetoothDevice : a reference to IOBluetoothDevice of this
property NSPredicate : a reference to NSPredicate of this

property pairedDevices : a reference to IOBluetoothDevice's pairedDevices
property text item delimiters : linefeed & tab & "- "

to deviceWithName(name as text)
    local name
    NSPredicate's predicateWithFormat:"name==[c]%@" argumentArray:[name]
    tell filteredArrayUsingPredicate_(result) of pairedDevices
        if |count|() > 0 then return its firstObject()
        error {"No device by that name. Available devices:", ¬
            getDeviceNames() of me} as text
    end tell
end deviceWithName

to getDeviceNames()
    (pairedDevices's valueForKey:"name") as list
end getDeviceNames

try
    if deviceWithName("Magic Mouse 2")'s openConnection() ≠ 0 ¬
        then error "Could not open connection."
on error E
    return E
end try

true

NB. Este script sólo ha sido probado en High Sierra

Me temo que los mensajes de error no son especialmente comunicativos en caso de que algo no funcione como se espera. Pero, si el dispositivo puede conectar, el script debería gestionarlo. Si no se conecta, prueba que eres capaz de establecer una conexión manualmente.

1 votos

Trabaja en Big Sur. ¡Gracias!

0 votos

@FelixBöhme Gracias por tener la gentileza de informar de ello. Es muy útil saberlo. (Todavía no estoy usando BS).

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