Найти - Пользователи
Полная версия: Как передать нажатия клавиш не активному окну?
Начало » Python для новичков » Как передать нажатия клавиш не активному окну?
1 2
PEHDOM
Deon
чет нефига не получается отправить команду нажать пробел в течении 1.5 сек, ни ошибок ничего просто команда исполнена
А вот тут мы вступаем на зыбкую почву предположений и догадок. Поскольку мы знаем о этой программе чуть менее чем ничего, то не факт что она вообще скушает хоть чтото переданое таким путем. Вам по моему, уже ктото говорил что там может быть встроена банальная зашита от такого.
Поэтому вам придеться все искать опытным путем.
Для начала сдлать PostMessage не в hwndChild а в hwnd . ну мало ли…
Вторым этапом вам нужно получить список всех дочерних окон даного приложения через win32gui.EnumChildWindows, В примере блокнота мы брали самое верхнее в z-order, (win32con.GW_CHILD -именно на это указывает). ХЗ как устроена ваша рыбалка, и возможно нужно послыть сообщения не в самое врхнее окно, а в какоето другое …
Так что тут уже вам мало кто может помочь, только метод тыка.

PS чето сначала не понял суто проблемы, но не буду удалять МБ еще пригодиццо.
Реально же таким макаром удерживание клавиши вы не пердадите,
попробуйте или передать четвертым параметром к-во нажатий например такая комманда win32api.PostMessage(hwndChild, win32con.WM_KEYDOWN, 0x20, 100) отправит 100 пробелов подряд окну
или передавать непрерывно сигнал win32api.PostMessage(hwndChild, win32con.WM_KEYDOWN, 0x20, 0) в течении полутора секунд
Deon
PEHDOM
рыбалка стимовская, дочерних окон нет оно одно банальный кликер который я собрал работает а вот так чот не работает, да опытный путь извилист и долог но ещебы вразумительные примеры использования и документацию а то документация там черт ногу сломит нифига не понимаю, помню так с селениумом любовью занимался но там инфы больше чем по winapi
PEHDOM
Deon
рыбалка стимовская, дочерних окон нет
Это вам так кажеться, даже у того же блокнота два “дочерних окна” .
банальный код
 import win32gui
def callback(hwnd, lparam):
    print(hwnd)
hwndMain = win32gui.FindWindow("Notepad", None)
win32gui.EnumChildWindows(hwndMain, callback, None)
выдаст чтото типа такого
>>>
1511586
1446048
>>
это два хендла на два “дочерних окна”, просто эти окна являються частью “основного окна”, и для конечного пользователя представляються одним окном.
А winapi очень хорошо документирован на том же MSDN.
например PostMessage https://msdn.microsoft.com/ru-ru/library/windows/desktop/ms644944%28v=vs.85%29.aspx
Все расписано, какой параметр за что отвечает, и какие значения может прнимать.
Deon
PEHDOM
Мне гугл не дал этого;( ладно попробую почитать
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB