Что такое lParam pywin32
Пытаюсь сделать программу для свернутого окна, чтобы та делала клик на определенных координатах, используя pywin32
import win32gui, win32con, win32ui, win32api
hwnd = win32gui.FindWindowEx(0, 0, None, 'Minecraft 1.8')
pycwnd = win32ui.CreateWindowFromHandle(hwnd)
cords = win32gui.ScreenToClient(hwnd, (300, 300))
x = cords[0]
y = cords[1]
lParam = win32api.MAKELONG(x, y)
print(lParam) # return 15794438
print(x, y)
pycwnd.SendMessage(win32con.WM_LBUTTONDOWN, win32con.MK_LBUTTON, lParam);
pycwnd.SendMessage(win32con.WM_LBUTTONUP, 0, lParam);
Для реализации клика по координатам, как я понял, следует использоват lParam. Несмотря на многочисленные темы от пользователей, фигурирует в них лишь блокнот/браузер, но вот DirectXInput игры не затрагиваются. К тому же, обсуждения были созданы более 7-ми лет назад, поэтому на актуальность не стоит полагаться. Официальной документации я по pywin32 не нашел, кроме http://timgolden.me.uk/pywin32-docs/contents.html , правда там особо не поясняется использование lParam.
В моем понимании lParam:
- Параметр координат клика.
- Координаты представляют из себя LONG значение, получаемое через функции MAKELONG()
- Для точности координаты должны быть внутренними, тоесть указывать на координаты внутри окна, чего можно добиться через ScreenToClient()
- Отправлять запрос следует в нужное окно, дабы lParam был принят и обработан, чего я добиваюсь через CreateWindowFromHandle()
Если я где-то ошибаюсь, то прошу у вас помощи переосмыслить lParam, и наконец понять, как он работает