Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 19, 2022 15:33:56

estra
Зарегистрирован: 2022-01-19
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

проблема с вызовом WinAPI функции

Добрый день!

Пожалуйста, помогите и объясните что не так. Нужно вызвать API функцию, вот так получается:

 import ctypes as ct
from ctypes import wintypes as wt
prototype = ct.WINFUNCTYPE(ct.c_bool, ct.POINTER(wt.POINT))
GetCursorPos = prototype(("GetCursorPos", ct.windll.user32))
point = wt.POINT()
result = GetCursorPos(ct.byref(point))
if result:
    print(point.x, point.y)

А вот если я пытаюсь описать параметры, ничего не получается:
 import ctypes as ct
from ctypes import wintypes as wt
prototype = ct.WINFUNCTYPE(ct.c_bool, ct.POINTER(wt.POINT))
paramflags = (2, "lppoint"),
GetCursorPos = prototype(("GetCursorPos", ct.windll.user32), paramflags)
point = wt.POINT()
result = GetCursorPos(lppoint=ct.POINTER(point)) # must be a ctypes type
if result:
    print(point.x, point.y)

Что я делаю не так, и как это поправить?

Отредактировано estra (Янв. 19, 2022 15:35:11)

Офлайн

#2 Янв. 19, 2022 19:46:19

estra
Зарегистрирован: 2022-01-19
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

проблема с вызовом WinAPI функции

решено

 prototype = ct.WINFUNCTYPE(ct.c_bool, ct.POINTER(wt.POINT))
paramflags = (1, "lppoint"),
GetCursorPos = prototype(("GetCursorPos", ct.windll.user32), paramflags)
point = wt.POINT()
result = GetCursorPos(lppoint=point)
if result:
    print(point.x, point.y)

Отредактировано estra (Янв. 19, 2022 19:46:33)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version