То есть ты хочешь чтобы текст набирался в фоновом окне?Дело в том, чтобы печаталось сообщение в строке нужной, нужно задать координаты этой точки на экране, и если при работающем скрипте открыть любое другое окно, программа прекращает работу, потому что открыто уже другое окно
у каждого окна есть поток ввода вывода, через вин апи можно к ним обратиться, и будет получен тот эффект который вам нуженДа, именно так, подскажите как это можно сделать?
import win32gui
import win32con
import win32api
from time import sleep
hwndMain = win32gui.FindWindow("Notepad", None)
hwndChild = win32gui.GetWindow(hwndMain, win32con.GW_CHILD)
while True:
temp = win32api.PostMessage(hwndChild, win32con.WM_CHAR, 0x44, 0) # печатаем букву D
print(temp)
sleep(1)
А подскажите пожалуйста, а что за дочерний дескриптор окна: hwndChild. Что это такое, и что за второй параметр?у каждого окна есть поток ввода вывода, через вин апи можно к ним обратиться, и будет получен тот эффект который вам нужен
пример (пишем в блокнот букву d всегда, не важно, активно оно или нет, свернуто или нет), слип не обязателен, для наглядности
Python:import win32gui import win32con import win32api from time import sleep hwndMain = win32gui.FindWindow("Notepad", None) hwndChild = win32gui.GetWindow(hwndMain, win32con.GW_CHILD) while True: temp = win32api.PostMessage(hwndChild, win32con.WM_CHAR, 0x44, 0) # печатаем букву D print(temp) sleep(1)
в случае с блокнотом это поле ввода, можно обратиться на прямую к элементу, если знать его имяА подскажите пожалуйста, а что за дочерний дескриптор окна: hwndChild. Что это такое, и что за второй параметр?
Еще вопрос, с блокнотом разобрался, но когда начал пробовать с браузером, чтобы программа писала например в адресную строку не получается совсем, дескриптор окна хрома найти смог, но как получить дескриптор адресной строки не понимаю.... Или не с адресной строкой, а любого другого окна, где можно писать в хромев случае с блокнотом это поле ввода, можно обратиться на прямую к элементу, если знать его имя
чтобы узнать имя элемента, можно использовать утилиту spy++, я только не помню, можно ли ее скачать отдельно, или она входит в SDK или WDK
про второй параметр можно почитать тут https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-getwindow
с блокнотом это был пример, что такое возможно...Еще вопрос, с блокнотом разобрался, но когда начал пробовать с браузером, чтобы программа писала например в адресную строку не получается совсем, дескриптор окна хрома найти смог, но как получить дескриптор адресной строки не понимаю.... Или не с адресной строкой, а любого другого окна, где можно писать в хроме
Понял, печально... Видимо придется идти учить c++с блокнотом это был пример, что такое возможно...
с другими окнами так просто не получиться, нужно проводить исследование, через spy++ смотреть, как окно построено, какие событие обрабатывает, какие не обрабатывает, это занятие не быстрое...
ну и вин апи на питоне, это изврат, проще делать на с++, так как писать придется полностью на вин апи