Форум сайта python.su
Как получить в битмап изображение экрана или <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 не могу понять?
Офлайн
Отрисовать курсор можно с помощью PIL http://www.pythonware.com/products/pil/.
А вот как получить текущий крусор… хм. наверное надо в winapi покопаться.
Кстати, самый простой способ снять скриншот (с помощью PIL):
import ImageGrab
img=ImageGrab.grab()
img.save('screen.jpg')
Отредактировано (Сен. 18, 2008 17:27:23)
Офлайн
Так разобрался и сам отвечу:
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
Офлайн