저는 현재이 AppleScript를 사용하여 PID의 가장 최근 창으로 포커스를 설정하려고합니다 450
. 예를 들어 pid가 여기에 있습니다 .
tell application "System Events"
set frontmost of the first process whose unix id is 450 to true
end tell
이것은 접근성 승인을 요구하지 않는다는 점에서 훌륭하게 작동합니다. 그러나 단점은 다음과 같습니다.
- 최소화 된 창을 무시하므로 모든 창을 최소화하면 아무 것도 집중되지 않습니다.
- 여러 공간에 걸쳐 창이 있고 마지막으로 액세스 한 창이 공간 X에 있었던 경우. 공간 Y에 있고 공간 Y에 해당 응용 프로그램의 창이있는 경우 가장 최근에 사용 된 공간 Y에 초점을 맞 춥니 다.
- 나는 아직 그것을 만난 적이 없다. 그러나 분명히 사람들은 다른 응용 프로그램의 윈도우가 윈도우 상단에 있다면 그것이 정상에 오지 않을 것이라고 말한다.
perform action AXRaise
그러나 나는 이 접근성 API 승인이 필요하다는 것을 알고있다 . 애드온 사용자는 단일 앱 액세스를 허용하는 데 어려움을 겪고 있습니다. 특히 첫 번째 팝업에서 미스를 허용하지 않는 경우 더욱 그렇습니다.
그래서 이것이 애플 스크립트로 이루어졌습니다. 탄소 (코어 - 기반, 코어 그래픽) 또는 코코아로 할 수있는 방법을 알고 있다면 그것을 사용할 수 있습니다.
osx 10.9에서는 AXMakeProcessTrusted
더 이상 사용하지 않을 것입니다. 그렇지 않으면 사용자를 괴롭 히지 않고 내 앱 액세스 권한을 부여한 다음 AXUIElementSetAttributeValue
창을 앞쪽으로 가져 오는 데 사용할 수있었습니다.
감사하십시오.