Найти название активного окна при помощи python
Подскажите как можно найти название приложения, которое является активным в данный момент. Я нашел много примеров как это делают через win32gui
from win32gui import GetWindowText, GetForegroundWindow
print(GetWindowText(GetForegroundWindow()))
Проблема в том что в этом случае возвращается название окна, к примеру у меня запущен pycharm, но название у окна test - test.py и так же с браузерами и т.д.
Нашел еще один пример, но он возвращает id приложения, но все так же не смог найти как из id найти название самого приложения.
import ctypes
from ctypes import wintypes
pid = wintypes.DWORD()
active = ctypes.windll.user32.GetForegroundWindow()
active_window = ctypes.windll.user32.GetWindowThreadProcessId(active,ctypes.byref(pid))
Подскажите как определить название приложение которое сейчас активно ?
Ответы (1 шт):
Автор решения: L4legenda
→ Ссылка
Вот пример как решил данный вопрос
import psutil
import ctypes
from ctypes import wintypes
pid = wintypes.DWORD()
active = ctypes.windll.user32.GetForegroundWindow()
active_window = ctypes.windll.user32.GetWindowThreadProcessId(active, ctypes.byref(pid))
pid = pid.value
for item in psutil.process_iter():
if pid == item.pid:
print(item.name())