AppKit не определяет динамически переднее приложение - PullRequest
0 голосов
/ 24 августа 2018

Я использую Appkit в Python, чтобы компьютер чувствовал самое переднее приложение. Сначала он будет правильно определять самое переднее приложение, но когда я изменяю самое переднее приложение и оставляю терминал работающим, новая информация не обновляется. Например, будет работать следующий код:

from AppKit import NSWorkspace
active_app_name = NSWorkspace.sharedWorkspace().frontmostApplication().localizedName()

Но теперь предположим, что я делаю Chrome, а не Excel главным приложением и запускаю следующую программу на терминале. Затем после того, как терминал напечатает «Chrome», я нажму на приложение «Excel», терминал продолжит печатать «Chrome», и он никогда не почувствует, что Excel - самое переднее приложение.

from AppKit import NSWorkspace
while True:
    active_app_name = NSWorkspace.sharedWorkspace().frontmostApplication().localizedName()
    print (active_app_name)
    if active_app_name == 'Microsoft Excel':
        pass
        # do stuff
    else:
        time.sleep(5)

Я хочу, чтобы AppKit мог распознавать новое переднее приложение, когда я вносил изменения в самое переднее приложение.

1 Ответ

0 голосов
/ 27 августа 2018

Для динамического обновления active_app используйте этот код:

active_app = NSWorkspace.sharedWorkspace().activeApplication()
...