2017-11-07 3 views
2

전체 화면 응용 프로그램에서 특정 창 조작을 수행하기 위해 macOS에서 실행중인 응용 프로그램 목록을 얻으려고합니다. 그것은 다음과 같습니다실행중인 응용 프로그램의 전체 윈도우 목록을 가져올 수 있습니까?

AXUIElementCopyAttributeValues((__bridge AXUIElementRef) app, 
           (__bridge CFStringRef) kAXWindowsAttribute, 
           index, 
           count, 
           &values); 

갈 방법이지만, 전체가 애플 리케이션을위한 :

먼저 그때 나는 창문을 얻을 Accessibility API를 사용하고 [NSWorkspace sharedWorkspace].runningApplications를 통해 실행중인 모든 응용 프로그램의 목록을 얻을 수있어 - kAXWindowsAttribute 창이 비어 있습니다. 전체 화면이 아닌 창에서는 잘 작동합니다.

+1

'runningApplications' *에는 전체 화면을 실행하는 앱 (제한된 테스트에서)이 포함됩니다. 질문을 편집하여 코드를 표시하고 오류의 원인을 자세히 설명하십시오. 다행히 누군가가 당신을 도울 수 있기를 바랍니다. – CRD

+0

당신의 문제는 풀 스크린 윈도우 * 그 자체와 아무 관련이없는 것처럼 보입니다. 오히려 그것은 다른 공간 *의 윈도우와 관련이 있습니다. 다른 공간에서 응용 프로그램을 열고 코드를 실행하십시오. 코드가 동일한 공간에서 실행되고 있지 않으면 창을 표시하지 않습니다. 필자는 이것이 공백을 전환 할 수있는 프로그래밍 방식의 인터페이스가 없어야한다는 Apple의 강한 견해와 관련이 있다고 생각합니다. 그러나이를 이해해야합니다. HTH – CRD

답변

1

코어 그래픽 서비스 API는 CGWindowListCopyWindowInfo() 함수를 통해 모든 창 목록을 제공 할 수 있습니다.

+0

동일한 API를 사용하여 창을 조작 (전체 화면/최소화 최소화) 할 수 있습니까? – Sebastian

+0

Nope. 그러나 일단 윈도우 ID를 사용하면 액세스 가능성 API를 사용할 수 있습니다. –

관련 문제