Задача не такая уж и простая, но реализовать возможно.
Я дам описание как я сделал нажатие клавиши в блокноте. Для ваших задач вы должны сами придумать реализацию.
Первое что понадобиться сделать, это получить идентификатор окна для дальнейшего с ним взаимодействия. Используем функцию
FindWindow передавая первым параметром None, а вторым заголовок окна, его можно посмотреть используя Spy++ или WinSpy++.
hwnd = win32gui.FindWindow(None, "Безымянный – Блокнот")
Второе, найти класс окна, куда требуется отсылать сообщения (вам возможно не понадобится). Для этого используем функцию
FindWindowEx. В моём случае требуется подкласс "Edit", его название также можно получить с помощью WinSpy++.
editClass = win32gui.FindWindowEx(hwnd, None, "Edit", None)
Чтобы отправить сообщение о каком-либо действии в окно, используйте функцию
SendMessage. Передавая ему идентификатор класса, само действие, и дополнительные к нему параметры(подробнее смотрите в документации к WinApi). Просто отправить команду может не сработать, в таком случае проследите сообщения вводимые вами в окно с помощью Spy++.
win32gui.SendMessage(editClass, win32con.WM_CHAR, 0x7A, 0) #Ввод символа 'z' в класс "Edit"
Весь мой код:
import win32gui
import win32con
hwnd = win32gui.FindWindow(None, "Безымянный – Блокнот")
editClass = win32gui.FindWindowEx(hwnd, None, "Edit", None)
win32gui.SendMessage(editClass, win32con.WM_CHAR, 0x7A, 0)