Как узнать координаты клика на экране?

RedHolms

Известный
Автор темы
Проверенный
620
367
Версия MoonLoader
.026-beta
Собственно вопрос, как узнать что был клик мыши по экрану, и как определить его координаты?
 
Решение
Lua:
addEventHandler('onWindowMessage', function(msg, wp, lp)
    if msg == 513 then
        local x, y =  getCursorPos()
        print(x, y)
    end
end)
а ничего что lParam это и есть координаты клика мышкой?
Lua:
function get_xy_lparam(lParam)
    local lp = ffi.new("unsigned long[1]", lParam)
    local x, y = ffi.cast("short*", lp), ffi.cast("short*", lp) + 1
    x, y = x[0], y[0]
    return x, y
end

function onWindowMessage(uMsg, wParam, lParam)
    if msg == 513 then
        local x, y = get_xy_lparam(lParam)
        print(x, y)
    end
end

bottom_text

Известный
673
320
Собственно вопрос, как узнать что был клик мыши по экрану, и как определить его координаты?
Lua:
addEventHandler('onWindowMessage', function(msg, wp, lp)
    if msg == 513 then 
        local x, y =  getCursorPos()
        print(x, y)
    end
end)
 
  • Нравится
Реакции: RedHolms

kin4stat

mq-team · kin4@naebalovo.team
Всефорумный модератор
2,746
4,831
Lua:
addEventHandler('onWindowMessage', function(msg, wp, lp)
    if msg == 513 then
        local x, y =  getCursorPos()
        print(x, y)
    end
end)
а ничего что lParam это и есть координаты клика мышкой?
Lua:
function get_xy_lparam(lParam)
    local lp = ffi.new("unsigned long[1]", lParam)
    local x, y = ffi.cast("short*", lp), ffi.cast("short*", lp) + 1
    x, y = x[0], y[0]
    return x, y
end

function onWindowMessage(uMsg, wParam, lParam)
    if msg == 513 then
        local x, y = get_xy_lparam(lParam)
        print(x, y)
    end
end
 
  • Нравится
Реакции: RedHolms и bottom_text

bottom_text

Известный
673
320
а ничего что lParam это и есть координаты клика мышкой?
Lua:
function get_xy_lparam(lParam)
    local lp = ffi.new("unsigned long[1]", lParam)
    local x, y = ffi.cast("short*", lp), ffi.cast("short*", lp) + 1
    x, y = x[0], y[0]
    return x, y
end

function onWindowMessage(uMsg, wParam, lParam)
    if msg == 513 then
        local x, y = get_xy_lparam(lParam)
        print(x, y)
    end
end
Я заметил, что lparam меняется от координат клика, но не понимал почему там выводятся странные значения