2017-01-13 17 views
0

이것은 대답하기에 충분히 간단한 질문이어야합니다 (가정합니다).프로세스 창을 앞쪽으로 가져 오시겠습니까?

"ScreenFlow"프로세스의 창 1을 활성화하려고합니다. 어떻게해야합니까?

나는 Application('ScreenFlow').activate()이 앞면에 Processes['ScreenFlow').windows[0]이된다고 알고 있습니다. 그런데 어떻게 Processes['ScreenFlow').windows[n]으로 전환할까요?

감사

+0

process.windows[1].attributes()를 사용하여 객체의 속성으로 볼 수는 사용자가 다른 응용 프로그램에 포커스가있는 경우에도 항상 전면에 해당 창을 가지고 하시겠습니까? (macOS가 허용하는지 잘 모르겠다 - 사용자를 방해하는 것은 좋지 않은 생각이며, 애플 리케이션이 포커스를 훔칠 때 개인적으로 가지고 있었다.) – Dai

+0

참고 : "앞으로 가져다"(예 : 항상 맨 위에있는 창 표시)와 포커스 훔치기 사이에는 차이점이 있습니다. 이는 내가'activate() '이 할 것이라고 생각합니다. – Dai

+0

슬픈 듯이 activate()는 최소한이 응용 프로그램에 대해서는 윈도우를 사용하지 않습니다 : ''Application ('ScreenFlow'). activate() => true' '>> 응용 프로그램 ('ScreenFlow'). [1] .activate() !! line 1의 오류 : TypeError : undefined가 객체가 아닙니다 ('Application ('ScreenFlow '). windows [1] .activate') ' – Sancarn

답변

0

이 일을하는 데 필요한 조치는 AXRaise이다 : 이와 같은 변경을 수행하고자 할 때 미래에

function setWinFront(n) { 
    var system = Application('System Events') 
    var ScreenFlow = system.processes['ScreenFlow'] 
    Screenflow.windows[n].actions['AXRaise'].perform() 
} 

그 행동이 존재하는지 process.windows[1].actions()에보기 위하여 어쩌면 현명한 , 그리고 그들이하는 경우 - 그들을 먼저 시도하십시오.

또는 하나는