Ho bisogno di chiudere altre applicazioni nel cacao. Ho un dizionario utente di Info da una notifica che mi dice il nome dell'applicazione. Ho provato i metodi a terminare ea forzare i terminali, ma non hanno funzionato (penso che siano disponibili solo nel leopardo delle nevi)Chiudere altre applicazioni nel cacao
risposta
È possibile inviare l'applicazione a uscire da AppleEvent, richiedendo l'uscita dall'applicazione, ma non credo può forzare un'applicazione a uscire senza privilegi elevati. Dai uno sguardo al framework Scripting Bridge per il modo più cacao-y per inviare gli eventi richiesti.
Utilizziamo -[NSWorkspace runningApplications]
. Richiede 10.6 o superiore.
void SendQuitToProcess(NSString* named)
{
for (id app in [[NSWorkspace sharedWorkspace] runningApplications])
{
if ([named isEqualToString:[[app executableURL] lastPathComponent]])
{
[app terminate];
}
}
}
in caso contrario, è necessario utilizzare AppleScript. Si può fare qualcosa di simile banale:
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);
}
Sembra buono, lo proverò più tardi oggi. – pasawaya
La soluzione migliore (contabilità per tutti i diversi di API disponibili negli ultimi 3-4 versioni di OS X) sta per essere utilizzando AppleScript. Basta generare lo script necessario in Obj-C/Python/Java, qualunque cosa tu stia effettivamente usando (sto assumendo Obj-C dal momento che hai detto esplicitamente "In Cocoa"). Ed eseguirla utilizzando la classe NSAppleScript (un esempio inventato):
// 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);
Questo viene eseguito in modo efficace uno script che (se appName era 'Safari') si presenta come:
tell application "Safari"
quit
end tell
Quella dell'arrivo o della partenza questo SO domanda
Questo era buono ma non funziona per tutte le app, quindi ho fatto un upvoted ma non ho assegnato il bounty. – pasawaya
- 1. Registrazione audio stile Hijack audio OSX da altre applicazioni (cacao)
- 2. Trascinando un rettangolo nel cacao
- 3. Utilizzo di SwingEventMonitor per monitorare altre applicazioni?
- 4. Un file batch per minimizzare altre applicazioni
- 5. come gestire il pulsante di chiusura della finestra nel cacao
- 6. rilascio/confusione autorelease nel cacao per iphone
- 7. Come impostare la stampa nel cacao, veloce?
- 8. override description o stringValue nel cacao?
- 9. Come hash SHA nel cacao/iOS
- 10. Test delle applicazioni Web d3 (e altre basate su SVG)
- 11. Rilevare se la finestra è una finestra chiave nel cacao
- 12. cacao senza XCode
- 13. Rimuovere capacità di chiudere da barra delle applicazioni
- 14. Interagire con altre applicazioni desktop in Windows utilizzando C# winforms
- 15. Mostra schermate live di altre applicazioni in una finestra dell'applicazione
- 16. Utilizzare le chiavi ssh per l'autenticazione in altre applicazioni?
- 17. Come verificare il permesso di licenza Android per altre applicazioni
- 18. Dove cercare gli specificatori del formato della data usati nel cacao/cacao?
- 19. La distribuzione di applicazioni Web Java è più costosa di altre applicazioni Web PHP?
- 20. SLF4J - Le associazioni vengono sovrascritte da altre applicazioni sullo stesso server applicazioni
- 21. applicazioni JavaFX nel progetto Maven
- 22. cacao setAnimationDidStopSelector
- 23. Delegato applicazione - Cacao
- 24. Come ottenere indici da NSIndexset in un NSArray nel cacao?
- 25. Come fare un http entrare nel cacao su iPhone
- 26. come impostare l'immagine per uitabbarcontroller nel codice del cacao
- 27. Come mostrare un avviso pop-up nel cacao?
- 28. problema di scrittura di un NSMutableArray su file nel cacao
- 29. Errore di cacao 260
- 30. cacao Visualizzazioni dall'utente ridimensionabili
Se non si dispone di 300 punti come si può fare una taglia? –
@boyfarrell - Ho messo la taglia su di essa. – pasawaya