Оправка нажатия клавиши в другое окно без переключения фокуса
Я хочу иметь возможность через 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 это не работает. Подскажите куда копнуть.