[DELPHI] Kursor Myszy

0

Witam

Mam problem, chcę zrobić funkcję, która będzie sprawdzać czy obecny kursor jest identyczny jak kursor niegdyś zapisany. Dużo szukałem również dużo znalazłem, ale i tak nie działa tak jak chciałem ponieważ czyta bardzo długo (1024x768 jeśli sprawdzam każdy piksel to zajmuje kilka sekund).

To jest funkcja zwracająca obrazek kursora do TBitmap

//---------------------------------------------------------------------------
function TForm1.f_kursor():TBitmap;
var
MyCursor: TIcon;
begin
MyCursor := TIcon.Create;
MyCursor.Handle := GetCursor();

result := TBitmap.Create();
with result do
  begin
  Height := 32;
  Width := 32;

  Canvas.Brush.Color := clWhite;
  Canvas.FillRect(Rect(0,0, Width, Height));
  Canvas.Draw(0, 0, MyCursor);
  end;
MyCursor.Free(); 
end;
//---------------------------------------------------------------------------

Znalazłem również coś z ścieżką
HKEY_CURRENT_USER\Control Panel\Cursors\Ale tam znajduje(teoretycznie bo u mnie nic nie znajduje, ale ludzie na forach piszą, że działa) tylko ścieżki.

No i na końcu chciałbym przedstawić funkcje Screen.Cursor, która zwraca non-stop wartość 0[IntToStr(Screen.Cursor)] choć na tej stronie http://delphi.about.com/library/blcursors.htm jest przedstawiony schemat dla jakiego kursora powinna być jaka wartość. Największą wiarę mam w tą funkcję.

Proszę mi pomóc w rozwiązaniu mojego problemu.

Z góry dzięki.

0

na forum jest unit MD5 i metody generowania CRC. Wydaje mi się, że wygenerowanie funkcji skrótu (hash) jest dobrym pomysłem. Na wejściu podajesz bitmapę, obliczasz CRC (operacja w pamięci będzie szybka) i potem tylko porównać ze sobą skróty. Polecam:
CRC
MD5

0

Wiem o co ci chodzi.

Ale mój problem polega na tym, że pobieranie kursora do TBitmap jest bardzo powolne(Za wolne)

Przed chwilą wpadłem na genialny pomysł może w jakiś sposób porównać HICON z GetCursor(); ?? tylko jak bo próbowałem i jakoś mi to nie wyszło.

1 użytkowników online, w tym zalogowanych: 0, gości: 1