SendMessage и Steam

Steam принимает нажатия только с SetForegroundWindow() как сделать без фокуса? Очень долго пытаюсь найти решение. Буду благодарен любой помощи.

import time
import win32api
import win32con
import win32gui

hwndMain = win32gui.FindWindow(None, 'Steam Guard — Необходима авторизация компьютера')

win32gui.SetForegroundWindow(hwndMain)
time.sleep(0.1)
win32api.SendMessage(hwndMain, win32con.WM_CHAR, 0x44, 0)

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

Автор решения: VAntonuk

Некоторые программы для отсеивания лишних нажатий проверяют окно в фокусе. Я вижу 2 варианта 1 - dll hook 2 - получать активное окно через getForegroundWindow, и после операций со стимом возвращать его


import time
import win32gui

if __name__ == '__main__':
    print("ready in 3 ")
    time.sleep(3.0)

    previous = win32gui.GetForegroundWindow()
    print("captured ; swap window")
    print("ready in 3 ")
    time.sleep(3.0)
    win32gui.SetForegroundWindow(previous)
    print("old window foregrounded")


→ Ссылка