Как в tkinter (python) привязать gui к конкретному приложению?
Есть условное окно ( абсолютно любое ) которое создает tkinter. Цель сделать привязку этого окна к другой программе windows (к примеру блокнот). Если окно "блокнота" активно, gui отображается поверх всех окон, если активно любое другое окно gui уходит на задний план но все еще работает. скорее всего это должен быть цикл или что-то подобное. пробовал .after но как только код доходит до него и начитает его выполнять сам gui перестает отвечать из-за бесконечной проверки активно ли окно или нет. получение активного окна делал через :
import psutil, win32process, win32gui, time
time.sleep(5) #для того чтобы переключиться на блокнот и узнать его class = notepad.exe
def active_window_process_name():
global pidi
pid = win32process.GetWindowThreadProcessId(win32gui.GetForegroundWindow())
pidi = psutil.Process(pid[-1]).name()
print(pidi) # notepad.exe
active_window_process_name()
Ska = 'notepad.exe' # для сpавнения с pidi
if pidi == Ska:
window.attributes("-topmost",True)
else:
window.attributes("-topmost",False)
это примерный вариант к которому пришел, но если в него добавить .after то он попадает в бесконечный цикл и виснет сам gui( не работает на нем кнопки и тд ) .mainloop() стоит в конце всего кода но не помогает. Если есть у кого идеи и примеры, как можно реализовать это(привязку gui к конкретному приложению) в питоне буду очень признателен. есть пример этого кода написанного на AHK ( но из-за ограниченных возможностей самого AHK решил перенести всю прогу на питон)