Auteur
Origineel door Mathijs aka Delphino, aangepast door Mark van Renswoude aka PsychoMark.
Omschrijving
Met deze code kan je de kleur bepalen van de pixel waar je op dat moment met de muis naar wijst, over het gehele scherm.
Uses clause
Code:
uses
Windows,
Graphics;
Interface
Code:
function GetColorMouseHotSpot(): TColor;
Implementation
Code:
function GetColorMouseHotSpot(): TColor;
var
pCursor: TPoint; // De positie van de cursor
hwndDesk: HWND; // De Window handle van de desktop
hdcDesk: HDC; // De Device Context van de desktop
begin
GetCursorPos(pCursor);
// Verkrijg de handles van de desktop (en met desktop bedoelt MS in dit geval
// alles wat je op het beeld ziet, niet het normale bureaublad :))
// Opmerking na testen van de code: GetDesktopWindow() werkt in dit geval
// niet, na zoeken op inet bleek simpelweg een handle van 0 wel te werken...
hwndDesk := 0;
hdcDesk := GetDC(hwndDesk);
// Haal de kleur van de pixel op
Result := GetPixel(hdcDesk, pCursor.x, pCursor.y);
// Ruim alles netjes op
ReleaseDC(hwndDesk, hdcDesk);
end;
Aanroep
Code:
var
pColor: TColor;
begin
pColor := GetColorMouseHotSpot();
end;
Opmerkingen
Aanpassing is gemaakt om de kleur direct van het scherm uit te lezen in plaats van kopieren naar een tijdelijke buffer, en om de resources netter vrij te geven (ReleaseDC na GetDC).
Bookmarks