2010-03-01 24 views
5

Estoy tratando de enviar pulsaciones de teclas a la aplicación VisualBoyAdvance utilizando AppleScript, pero no puedo hacer que funcione.La aplicación no acepta la pulsación de tecla

Mi código, hasta el momento, es la siguiente:

tell application "VisualBoyAdvance" 
    activate 

    tell application "System Events" 
     keystroke "k" 
    end tell 

end tell 

Cuando le digo a VisualBoyAdvance directamente, me sale este error:

error "VisualBoyAdvance got an error: Can’t get keystroke \"k\"." number -1728 from keystroke "k" 

He tratado de decirle a VisualBoyAdvance directamente, y también he intentado usando key code 40, pero todavía no puedo hacer que funcione. Curiosamente, esto hace el trabajo:

tell application "VisualBoyAdvance" 
    activate 

    tell application "System Events" 
     keystroke "d" using {command down} 
    end tell 

end tell 

Pero eso es un atajo de teclado que aparece en la barra de menú, así que supongo que sería un poco diferente.

¿Cómo puedo usar AppleScript para simular una pulsación de tecla y hacer que la aplicación responda a ella? Si no puedo usar AppleScript para esto, ¿qué más podría usar?

+0

¿Tiene el apoyo dispositivo de asistencia encendido? – alesplin

+0

alguna suerte en esto? –

Respuesta

0

Es la elección del desarrollador hacer una aplicación totalmente consciente de Applescript. Los elementos del menú son Applescriptable desde el punto de vista del Finder, pero otras opciones de UI pueden o no serlo. Vea UIElementInspector para examinar esa aplicación para elementos programables.

+0

¿Hay alguna otra forma de simular pulsaciones de teclas en el sistema? –

0

No puedo garuntee nada, ya que no tengo esta aplicación pero aquí es algunas cosas para probar

tell application "VisualBoyAdvance" 
    activate 
    tell application "System Events" 
     tell application process "VisualBoyAdvance" 
      try 
      keystroke "k" 
       on error 
        try 
        keystroke (ASCII character 75) 
        end try 
       end try 
     end tell 
    end tell 
end tell 
7

Creo que está casi allí. Aquí hay algo que utilicé para Safari; en este ejemplo, envío el código de clave 48 (pestaña).

tell application "Safari" 
    activate 

    tell application "System Events" to tell process "Safari" to key code 48 
end tell 

AFAICS esto debería ser en gran medida independiente del soporte de AppleScript en el proceso de destino que está pidiendo eventos del sistema para simular la pulsación de tecla a través de Acceso Universal.

Para obtener ayuda con los códigos clave, consulte esta útil aplicación: http://manytricks.com/keycodes/

+0

También: 'diga a la aplicación" Eventos del sistema "que diga el proceso" Safari "al teclado" d "' – frnhr

+0

Niza @frnhr - eso es aún más claro :) –

Cuestiones relacionadas