Ответ 1
Вероятно, есть разные способы сделать это, из которых перечисление запущенных приложений, а затем перечисление окон внутри приложения.
Я покажу подход приложения здесь
from AppKit import NSApplication, NSApp, NSWorkspace
from Quartz import kCGWindowListOptionOnScreenOnly, kCGNullWindowID, CGWindowListCopyWindowInfo
workspace = NSWorkspace.sharedWorkspace()
activeApps = workspace.runningApplications()
for app in activeApps:
if app.isActive():
options = kCGWindowListOptionOnScreenOnly
windowList = CGWindowListCopyWindowInfo(options,
kCGNullWindowID)
for window in windowList:
if window['kCGWindowOwnerName'] == app.localizedName():
print(window.getKeys_)
break
break
Это позволит найти текущее ориентированное приложение, вы можете изменить логику на основе названий или чего угодно
После того, как app
найден. Вы можете свернуть это с помощью
app.hide()
И вы можете снова показать приложение, используя
from Cocoa import NSApplicationActivateIgnoringOtherApps, NSApplicationActivateAllWindows
app.unhide()
app.activateWithOptions_(NSApplicationActivateIgnoringOtherApps)
# or
app.activateWithOptions_(NSApplicationActivateIgnoringOtherApps | NSApplicationActivateAllWindows)
Множество тем, на которые мне пришлось обратиться, чтобы получить это решение
OS X: переместить окно из Python
Как вывести список всех окон из всех рабочих областей в Python на Mac?
Как получить ссылку на окно (CGWindow, NSWindow или WindowRef) из CGWindowID в Swift?
" Нет такого файла: & # 39; needs.txt & # 39; Ошибка & Quot; при установке кварцевого модуля
Как создать пример Apple для сына?
Как получить заголовок, положение и размер окна другого приложения в Mac OS без API доступа?
Получить заголовок текущего активного окна/документа в Mac OS X
- [NSRunningApplication activWithOptions:] не работает
Как запустить приложение на переднем плане в Mac OS X с Python?