Estoy tratando de realizar un copiar/pegar para mi a la de la última aplicación activa, aquí está mi código:Applescript desde Mac App dice "esperado final de la línea, pero no encontró u201c " u201d"
NSString *appleScriptSource = [NSString stringWithFormat:@"\ntell application \"%@\" to activate\ntell application \"System Events\" to tell process \"%@\"\nkeystroke \"v\" using command down\nend tell", [lastApp localizedName], [lastApp localizedName]];
NSDictionary *error;
NSAppleScript *aScript = [[NSAppleScript alloc] initWithSource:appleScriptSource];
NSAppleEventDescriptor *aDescriptor = [aScript executeAndReturnError:&error];
El problema es que en algunos equipos funciona muy bien, pero en los demás fracasa Mi salida de error de error que se devuelve por executeAndReturnError es:.
2012-06-13 17:43:19.875 Mini Translator[1206:303] (null) (error: {
NSAppleScriptErrorBriefMessage = "Expected end of line but found \U201c\"\U201d.";
NSAppleScriptErrorMessage = "Expected end of line but found \U201c\"\U201d.";
NSAppleScriptErrorNumber = "-2741";
NSAppleScriptErrorRange = "NSRange: {95, 1}";
})
me parece que no puede averiguar lo que significa o por qué sucede.
Intentamos copiar el código de secuencia de comandos de Apple generado en el editor de Apple Script, y aquí funciona perfectamente.
Mi aplicación es espacio aislado: he agregado los identificadores de paquete para la clave "com.apple.security.temporary-exception.apple-events" para las aplicaciones que deseo admitir.
¿Alguna sugerencia?
\ U201c y \ u201d ambos representan comillas (izquierda/derecha respectivamente). [Escribir citas en un teclado] (http://en.wikipedia.org/wiki/%22#Typing_quotation_marks_on_a_computer_keyboard) Me hace creer que no está escapando de la cita "correctamente. Juega con el formato de la cadena y los personajes de los que estás escapando. – erran
Bueno, he traducido los unicodes pero no puedo descifrar qué es lo que falla. He intentado jugar con el script de Apple, pero no funciona, lo extraño es que funciona en algunos macs. –
Incluso haciendo simples manuscritos como "active this app" produce el mismo error. –