Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » Захват изображения курсора в Python под Windows [RSS Feed]

#1 Сен. 18, 2008 16:09:33

Progman
От:
Зарегистрирован: 2008-09-18
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Захват изображения курсора в Python под Windows

Как получить в битмап изображение экрана или <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 не могу понять?



Офлайн

#2 Сен. 18, 2008 16:44:09

shiza
От:
Зарегистрирован: 2007-07-03
Сообщения: 1073
Репутация: +  0  -
Профиль   Отправить e-mail  

Захват изображения курсора в Python под Windows

Отрисовать курсор можно с помощью PIL http://www.pythonware.com/products/pil/.
А вот как получить текущий крусор… хм. наверное надо в winapi покопаться.
Кстати, самый простой способ снять скриншот (с помощью PIL):

import ImageGrab 
img=ImageGrab.grab()
img.save('screen.jpg')
Получить текущие координаты курсора:
win32gui.GetCursorPos()
Не уверен, но может быть сам курсор можно получить как-то так…
win32gui.GetCursor() #возвращает она HCURSOR - но что это такое? с виду число как число =)



Отредактировано (Сен. 18, 2008 17:27:23)

Офлайн

#3 Сен. 18, 2008 21:06:18

Progman
От:
Зарегистрирован: 2008-09-18
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Захват изображения курсора в Python под Windows

Так разобрался и сам отвечу:

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



Офлайн

  • Начало
  • » GUI
  • » Захват изображения курсора в Python под Windows[RSS Feed]

Board footer

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

Powered by DjangoBB

Lo-Fi Version