Uso de la herramienta adecuada para el trabajo adecuado
-
Puede intentar agregar un pitido a su AppleScript para escuchar si se está llamando.
-
He tenido servicios que no se han ejecutado antes cuando hay dos cosas que intentan usar las mismas combinaciones de teclas. Puede intentar agregar más claves modificadoras para hacer que un conflicto sea menos probable (para pruebas y depuración).
-
Cuando veo un código que depende de llamar al comando llamado "retraso", me da una sensación de que el código no siempre va a funcionar.
-
Apple tenía la intención de que AppleScript fuera una interfaz de usuario alternativa, una alternativa al mouse y el teclado que usa AppleEvents para realizar la Comunicación de aplicación entre procesos (IAC). Creo que es posible que desee utilizar los servicios de AppleScript y Automator para proporcionarle una GUI para trabajar, pero me parece que debería usar algo de nivel inferior que AppleScript y AppleEvents para lo que está haciendo.
Por lo tanto, estoy hablando de agregar algún tipo de script de shell a la mezcla para que todo funcione de manera confiable.
--- Editar ---
Ya que @markhunte ha criticado mi respuesta por no ser realmente una respuesta, intentaré hacerlo mejor.
- Le sugerí que pusiera algunas llamadas a "beep" en su AppleScript para depurar si su script estaba siendo llamado o no. Intenté eso y no funcionó.
Encontré el siguiente enlace que habla sobre la creación de su propia función de registro. Creo que funcionará mejor.
enlace
Aquí está mi versión del código para hacer su propio registro usando AppleScript, de lo que recojo, la función de registro que está integrada en AppleScript solo muestra los resultados en la parte inferior de las ventanas del editor de AppleScript, y creo que el registro del sistema es dificil de entender Esta función de registro funciona para mí, la he probado:
on logToFile(themessage)
if themessage is equal to "" then
set theLine to ""
else
set theLine to (do shell script "date +'%Y-%m-%d %H:%M:%S'" as string) & " " & themessage
end if
do shell script "echo " & theLine & " >> ~/Library/Logs/AppleScript-events.log"
end logToFile
on run {input, parameters}
logToFile("")
logToFile("Entering Lock Keyboard Service")
set F8 to 100
set F9 to 101
set DOWN_ARROW to 125
# Press ^F8
logToFile("About to simulate control-F8")
tell application "System Events"
key code F8 using control down
end tell
delay 0.1
# Press "down"
logToFile("About to simulate down-arrow")
tell application "System Events"
key code DOWN_ARROW
end tell
delay 0.1
# Press ^F9
logToFile("About to simulate control-F9")
tell application "System Events"
key code F9 using control down
end tell
logToFile("Exiting Lock Keyboard Service")
return input
end run
Envolví el código en un
on run
end run
porque el código parecía funcionar mejor para mí de esa manera.
Además del registro, para depurar, puedes intentar usar algunos caracteres visibles como "A", "B" y "C" y puedes ver si se están escribiendo en Safari.
Una idea más para ti. Cuando probé el script por primera vez, la tecla F8 estaba vinculada a algo. Tuve que ir a Preferencias del sistema > Teclado > Atajos de teclado y desate la combinación de teclas ^ F8 de lo que estaba vinculado. (Esto es como lo que dije en mi primera respuesta, que creo que tenía algunas buenas ideas como probar diferentes combinaciones de teclas).
Aquí hay un enlace a una captura de pantalla. Está en mi carpeta pública de Dropbox. Avíseme si puede verlo cuando estoy probando compartir enlaces usando Dropbox.
enlace
¿Qué es lo que estás tratando de hacer? ¿Bloquear un teclado con esta secuencia de combinaciones de teclas?
El flujo de trabajo se ejecutó para mí en Safari (después de que cambié la tecla control-F8 en los Atajos de teclado en las Preferencias del sistema) y en Safari, obtuve una clave de matriz descendente, pero el teclado no se bloqueó. ¿Requiere eso un software adicional para que esto funcione?
[email protected]
--- Editar ---
Agregué la página del manual para el comando "automator" a mi sitio web que está en su infancia.
página man para el comando automator
enlace
--- Editar ---
Tengo algunas ideas más para ti:
- En las Preferencias del sistema, existen algunas preferencias para habilitar funciones que le ayudan (al menos durante la depuración).
A. Hay "teclas adhesivas" que permiten que una tecla modificadora se pegue y no se vaya tan rápido, que podría ayudar. No lo sé.
enlace
B. Thee es una opción para mostrar una imagen en la pantalla (y reproducir el sonido) cuando se detecta una tecla modificadora.
enlace
- Podría usar un programa especialmente diseñado para manejar la definición de combinaciones de teclas. Hace años, solía usar un programa llamado QuicKeys. Parece que ahora tienen menos compatibilidad con Mac, pero podría buscar en Google "Alternatives to QuicKeys" (Alternativas a QuicKeys) si eso le ayudara a tener otro programa que defina los equivalentes del teclado.
PD: acabo de desactivar todas esas preferencias de las Preferencias del Sistema de Accesibilidad, no soporto su uso (tal vez algunas estén bien, pero creo que las "Teclas Adhesivas" estaban causando que mi Bloqueo de mayúsculas se quedara con la escritura de todo en mayúsculas. :().
enlace
Podría ser mejor usar Spark.app para manejar equivalentes de la tecla de comando
enlace