Attualmente utilizzo questo AppleScript per provare a mettere a fuoco la finestra più recente di un PID, ad esempio qui il mio pid è 450
.
tell application "System Events"
set frontmost of the first process whose unix id is 450 to true
end tell
Funziona meravigliosamente in quanto non richiede l'approvazione per l'accessibilità. Le stranezze sono:
- Ignora le finestre ridotte a icona, quindi se tutte le finestre sono ridotte a icona, nulla è focalizzato
- Se hai finestre su più spazi e l'ultima finestra di accesso era nello spazio X. Se ti trovi nello spazio Y e hai finestre di quell'app nello spazio Y, verrà messo a fuoco lo spazio utilizzato più recentemente nello spazio Y.
- Non l'ho ancora incontrato, ma a quanto pare le persone dicono che se una finestra di altre applicazioni si trova in cima alla finestra, non verrà in cima.
Conosco perform action AXRaise
, tuttavia questo richiede l'approvazione API di accessibilità. I miei utenti del mio addon stanno chiedendo di rimuoverlo, dato che molti di loro hanno difficoltà a consentire l'accesso alla singola app, specialmente se la mancanza lo garantisce sul primo popup.
Quindi questo è stato fatto in applescript, se sai come farlo in carbonio (core-foundation, core-graphics) o cacao che posso usare.
In osx 10.9 il AXMakeProcessTrusted
è stato deprecato altrimenti avrei potuto utilizzarlo per garantire l'accesso alla mia app senza disturbare gli utenti e quindi utilizzare AXUIElementSetAttributeValue
per portare una finestra in primo piano.
Per favore aiuto Grazie