Что такое 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:

  1. Параметр координат клика.
  2. Координаты представляют из себя LONG значение, получаемое через функции MAKELONG()
  3. Для точности координаты должны быть внутренними, тоесть указывать на координаты внутри окна, чего можно добиться через ScreenToClient()
  4. Отправлять запрос следует в нужное окно, дабы lParam был принят и обработан, чего я добиваюсь через CreateWindowFromHandle()

Если я где-то ошибаюсь, то прошу у вас помощи переосмыслить lParam, и наконец понять, как он работает


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