Найти - Пользователи
Полная версия: Захват изображения курсора в Python под Windows
Начало » GUI » Захват изображения курсора в Python под Windows
1
Progman
Как получить в битмап изображение экрана или <b>любого текущего окна</b> Windows я разобрался.
А вот с получением изображения курсора не могу справиться.
из Delphi это делаю так:

function CurCursor: HCURSOR;
var ci:TCursorInfo;
begin
FillChar(ci,SizeOf(ci),0);
ci.cbSize:=SizeOf(ci);
if GetCursorInfo(ci)
then result:=ci.hCursor
else result:=0;
end;


procedure DrawCurCursorOnCanvas(ACanvas: TCanvas);
var
cu:HCURSOR;
dc: HDC;
di:LongBool;
begin
cu:=CurCursor;
dc:=ACanvas.Handle;
di:=DrawIcon(dc,0,0,cu);
end;

Как отрисовать изображение текущего курсора на Bitmap в Pythone не могу понять?
shiza
Отрисовать курсор можно с помощью PIL http://www.pythonware.com/products/pil/.
А вот как получить текущий крусор… хм. наверное надо в winapi покопаться.
Кстати, самый простой способ снять скриншот (с помощью PIL):
import ImageGrab 
img=ImageGrab.grab()
img.save('screen.jpg')
Получить текущие координаты курсора:
win32gui.GetCursorPos()
Не уверен, но может быть сам курсор можно получить как-то так…
win32gui.GetCursor() #возвращает она HCURSOR - но что это такое? с виду число как число =)
Progman
Так разобрался и сам отвечу:

def GetCurCursor():
“”“
возвращает текущий битмап глобального курсора
”“”

flags, hcursor, pos = win32gui.GetCursorInfo()

hwndDC = win32gui.GetWindowDC(0)
mfcDC=win32ui.CreateDCFromHandle(hwndDC)
saveDC=mfcDC.CreateCompatibleDC()
bmp = win32ui.CreateBitmap()
h=w=32
bmp.CreateCompatibleBitmap(mfcDC, w, h)
saveDC.SelectObject(bmp)
saveDC.DrawIcon((0,0),hcursor)

return bmp
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