Оправка нажатия клавиши в другое окно без переключения фокуса

Я хочу иметь возможность через python нажать клавишу в окне с YouTube Music: там можно через клавиши _+ отмечать понравившиеся композиции. Используется установленное приложение YouTube Music (как приложение Chrome). Работает оно в отдельном окне. При этом большую часть времени окно проигрывателя не будет в фокусе, поэтому переключаться на него я не хочу. Пусть остаётся не в фокусе.

Я пробовал посылать нажатия клавиш другим приложениям. Следующий код успешно работает для Телеграмма и Блокнота. При этом у Блокнота работает дочерний процесс, в который отправляется нажатие клавиши, так как в основной не прокатывает.

import win32gui, win32api, win32con
def enumHandler(hwnd, lParam):
    if win32gui.IsWindowVisible(hwnd) and win32gui.IsWindowEnabled(hwnd):
        if windowTitle in win32gui.GetWindowText(hwnd):
            print(str(hwnd) + '\t' + win32gui.GetWindowText(hwnd)) #Вывод данных о окне
            
            hwnds = {}
            win32gui.EnumChildWindows(hwnd, callback, hwnds) #Поиск дочерних окон
            if len(hwnds) == 0:
                win32api.SendMessage(hwnd, win32con.WM_CHAR, ord('+'), 0) #Отправка нажатия клавиши
            else:
                for w in hwnds:
                    print(str(hwnds[w]) + '\t\t' + w)
                    win32api.SendMessage(hwnds[w], win32con.WM_CHAR, ord('+'), 0) #Отправка нажатия клавиши
    return True

def callback(hwnd, hwnds):
    if win32gui.IsWindowVisible(hwnd) and win32gui.IsWindowEnabled(hwnd):
        hwnds[win32gui.GetClassName(hwnd)] = hwnd
    return True

windowTitle = 'Блокнот'
win32gui.EnumWindows(enumHandler, None)

Но для YouTube Music это не работает. Подскажите куда копнуть.


Ответы (0 шт):