6 votos

Toggle caps lock programmatically using applescript

Estoy buscando toogle capslock programmatic utilizando applescript. Aquí hay algo que traté de hacer que funcione. Parece que funciona para todas las demás teclas excepto capslock.

 tell application "System Events"
    key code 57
end tell
 

57 es el código clave para el bloqueo de mayúsculas

5voto

qarma Puntos 71

La presentación separada respuesta, ya que es completamente distinta de la primera en que se soluciona el problema a la mano. El crédito va para @user3439894 , quien señaló que el OP y me de un link (de palanca de bloqueo de mayúsculas mediante programación) que presenta a algunos de código fuente escrito en C que se puede cambiar mediante programación/establecer el estado del bloqueo de mayúsculas. Así, el crédito va también para el autor original de ese código, para los que me ofrecen una traducción en JavaScript para la Automatización (JXA), que es el JavaScript sabor de AppleScript.

Este script cambia el estado de bloqueo de mayúsculas en cada carrera:

ObjC.import("IOKit");
ObjC.import("CoreServices");


(() => {
    var ioConnect = Ref();
    var state = Ref();

    $.IOServiceOpen(
        $.IOServiceGetMatchingService(
            $.kIOMasterPortDefault,
            $.IOServiceMatching(
                $.kIOHIDSystemClass
            )
        ),
        $.mach_task_self_,
        $.kIOHIDParamConnectType,
        ioConnect
    );
    $.IOHIDGetModifierLockState(ioConnect, $.kIOHIDCapsLockState, state);
    $.IOHIDSetModifierLockState(ioConnect, $.kIOHIDCapsLockState, !state[0]);
    $.IOServiceClose(ioConnect);
})();

Este, como cualquier AppleScript, se puede ejecutar desde dentro del Editor de secuencias de Comandos (seleccione la opción de idioma en la barra de navegación en la parte superior de la ventana). Lamentablemente, Depurador de secuencias de Comandos no se adapta para JXA. Pero, en la práctica, la secuencia de comandos será más útil ejecutado por algún otro software de automatización, tales como Automator, Teclado Maestro, Alfred, etc., todo lo cual puede ejecutar JXA scripts directamente; y cualquier software que no ofrecen esta opción puede ejecutar por medio de los comandos de shell osascript:

osascript -l JavaScript /path/to/script.jxa.applescript

Usted puede usar un .applescript o .scpt de la extensión de archivo para guardar la secuencia de comandos.

1voto

qarma Puntos 71

Aunque no exactamente de la misma cosa, una acción similar se podría simular la tecla mayús siendo detenida. Usted puede ordenar los Eventos del Sistema para mantener el shift clave hacia abajo hasta que el comando de restablecimiento:

tell application "System Events" to key down shift

Restablecer:

tell application "System Events" to key up shift

Tiene diferencias obvias para activar el bloqueo de mayúsculas, que vale la pena una nota a pie de página.


ADVERTENCIA: puede ser humorístico, a continuación, rápidamente molesto para ejecutar el primer comando y perder la capacidad de, por ejemplo, la entrada de cualquier dígito (que sólo puede hacerse si la tecla mayús arriba). La acción de la tecla de cambio afectarán a los clics del ratón, los accesos directos, y así sucesivamente. Para ilustrar, si usted normalmente ejecutar una secuencia de comandos pulsando la tecla⌘R, esto no será posible mientras la tecla shift es activo, como el sistema de registro R (afortunadamente, +⟨click⟩ en los elementos de menú aparece a realizar la misma acción que con un simple clic).

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