Así que tengo un simple AppleScript que creo que debería escribir un montón de teclas, pero el carácter de punto no se imprime en las máquinas virtuales de VMware Fusion. Esto es extraño porque mi tecla de punto ( . ) entra en un periodo como el normal en esas VM.
MCVE
Aquí está mi última versión que he probado:
on run {input, parameters}
set file_text to "this another test: ... hello ..."
delay 0.3
repeat with ch in file_text
tell application "System Events" to keystroke ch
delay 0.1
end repeat
return input
end run
Construí esto como un servicio en Automator. Lo ejecuto yendo a mi aplicación, luego en la barra de título selecciono Servicios -> quicktype.
Comportamiento esperado
Sólo debería escribir el texto this another test: ... hello ...
. En muchas aplicaciones, hace exactamente eso.
Comportamiento real
En una VM de FreeBSD, pulsando . hace un punto en la cáscara (como es normal). Sin embargo, cuando se ejecuta el anterior script, los puntos parecen espacios en blanco. Resultado final:
En una máquina virtual de Windows, . hace un punto en el Bloc de notas (como es normal). Sin embargo, cuando se ejecuta el anterior script, los puntos parecen ser ignorados por completo. Resultado final:
Preguntas
¿Hay alguna manera de verdaderamente emular la pulsación de las teclas de una cadena de caracteres en AppleScript? Porque está claro que la forma anterior no lo hace.
¿Alguien sabe por qué se produce el comportamiento que he descrito anteriormente? ¿Por qué esto funciona en TextMate y Terminal, y otras aplicaciones de mac, pero no en Fusion VMs?