Necesito dejar de usar otras aplicaciones de cacao. Tengo un diccionario de información de usuario de una notificación que me dice el nombre de la aplicación. Intenté terminar los métodos y forzar Terminar, pero no funcionaron (creo que solo están disponibles en el leopardo de las nieves).Salir de otras aplicaciones en el cacao
Respuesta
Puede enviar la solicitud al salir de AppleEvent, solicitando la retirada de la aplicación, pero no creo que puede obligar a una aplicación a abandonar sin privilegios elevados. Eche un vistazo al marco Scripting Bridge para la forma más fácil de enviar los eventos requeridos.
Utilizamos -[NSWorkspace runningApplications]
. Requiere 10.6 o más.
void SendQuitToProcess(NSString* named)
{
for (id app in [[NSWorkspace sharedWorkspace] runningApplications])
{
if ([named isEqualToString:[[app executableURL] lastPathComponent]])
{
[app terminate];
}
}
}
de lo contrario, tendrá que usar AppleScript. Usted puede hacer algo cursi como esto:
void AESendQuitToProcess(const char* named)
{
char temp[1024];
sprintf(temp, "osascript -e \"tell application \\\"%s\\\"\" -e \"activate\" -e \"quit\" -e \"end tell\"", named);
system(temp);
}
Se ve bien, lo probaré más tarde hoy. – pasawaya
La mejor solución (que representan todos los diferentes disponibles de API en los últimos 3-4 versiones de OS X) va a ser el uso de AppleScript. Simplemente genere el script necesario en Obj-C/Python/Java, sea lo que sea que esté usando (supongo que Obj-C ya que dijo específicamente 'In Cocoa'). Y ejecutarlo utilizando la clase NSAppleScript (un ejemplo artificioso):
// Grab the appName
NSString *appName = [someDict valueForKey:@"keyForApplicationName"];
// Generate the script
NSString *appleScriptString =
[NSString stringWithFormat:@"tell application \"%@\"\nquit\nend tell",
appName];
// Execute the script
NSDictionary *errorInfo = nil;
NSAppleScript *run = [[NSAppleScript alloc] initWithSource:theScript];
NSAppleEventDescriptor *theDescriptor = [run executeAndReturnError:&errorInfo];
// Get the result if your script happens to return anything (this example
// really doesn't return anything)
NSString *theResult = [theDescriptor stringValue];
NSLog(@"%@",theResult);
Esto funciona de manera efectiva un guión que (si appName era 'Safari') se ve así:
tell application "Safari"
quit
end tell
Eso o echa un vistazo a este SO pregunta
Esto fue bueno, pero no funciona para todas las aplicaciones, por lo que subí pero no otorgué la recompensa. – pasawaya
- 1. Iniciar otras aplicaciones con Java
- 2. Salir de todas las aplicaciones con Applescript?
- 3. Android obtener PID de otras aplicaciones
- 4. Cómo hacer mediante programación de aplicaciones de cacao activa
- 5. Django: ¿se extienden otras aplicaciones ModelAdmin?
- 6. Android, detectar cuando se inician otras aplicaciones
- 7. ¿Usando SwingEventMonitor para monitorear otras aplicaciones?
- 8. ¿Cómo puedo dar el enlace de la tienda de aplicaciones en mis aplicaciones antes de aprobar otras aplicaciones?
- 9. Aplicaciones de código abierto de cacao bien escrito para aprender?
- 10. Guardar archivos en cacao
- 11. Ruido marrón en el cacao
- 12. Programación de cacao, estableciendo el delegado
- 13. Cómo evitar que un dll se cargue en otras aplicaciones
- 14. Eliminar notificaciones de la barra de notificaciones de otras aplicaciones
- 15. Proporcionar un servicio en segundo plano para otras aplicaciones
- 16. Atajos globales de cacao?
- 17. MVC2 Aplicaciones (y otras) compartiendo servicios de WCF y autenticación
- 18. arrastrando un rectángulo en el cacao
- 19. Cacao, Windows e hilos?
- 20. Información de Android sobre superposiciones/elementos flotantes sobre otras aplicaciones
- 21. ¿Se utiliza la recolección de basura en la calidad de producción de las aplicaciones de cacao?
- 22. ¿La implementación de aplicaciones web Java es más costosa que otras aplicaciones web PHP?
- 23. Replicar OpenSSL smime en el iPhone/Cacao
- 24. ¿Las otras aplicaciones afectan el rendimiento de mi aplicación en iOS?
- 25. ¿Cómo funciona LiveReload (y otras aplicaciones similares) técnicamente?
- 26. Salir de DE en el lote
- 27. Cacao sin XCode
- 28. ¿Cómo detectar el timbre de la alarma u otras aplicaciones usando el altavoz?
- 29. ¿Recursos para implementar ERP y otras aplicaciones empresariales?
- 30. ¿Cómo exportar una actividad para que otras aplicaciones puedan llamarla?
Si usted no tiene 300 puntos de cómo se puede hacer una recompensa? –
@boyfarrell - Puse la recompensa. – pasawaya