function CursorHandle: HCursor;
var
TID, CTID: Cardinal;
h: THandle;
p: TPoint;
begin
GetCursorPos(p);
h := WindowFromPoint(p);
TID := GetWindowThreadProcessID(h, nil);
CTID := GetCurrentThreadId;
if CTID = TID then result := GetCursor
else begin
AttachThreadInput(CTID, TID, TRUE);
result := GetCursor;
AttachThreadInput(CTID, TID, FALSE);
end;
end;
// Das Abbild des aktuellen Mauszeigers wird auf die Form gezeichnet.
procedure TForm1.Button1Click(Sender: TObject);
var h: HCursor;
begin
h := CursorHandle;
drawicon(canvas.handle, 20, 20, h);
end;