Einzelnen Beitrag anzeigen

SentinelPH

Registriert seit: 15. Mai 2007
9 Beiträge
 
#9

Re: aktuellen Cursor mit Delphi auslesen

  Alt 16. Mai 2007, 17:56
Klingt gut - das ist sicher die "sauberere" Variante als jedes Pixel zu vergleichen (auch wenn auch das klapp^^).
Wie würde das dann aussehen?
Warum läuft das nur in Proceduren von Objekten - dachte mir das eher so...:
Delphi-Quellcode:
var icon_alt : TIcon;

procedure TfrmXYZ.FormCreate(Sender: TObject);
begin
  ico_alt := TIcon.Create;
end;

function verglCursor : boolean;
var icon_neu : TIcon;
var ThreadID : cardinal;
begin
  ico_neu := TIcon.Create;
  try
    ThreadID := GetWindowThreadProcessID(WindowFromPoint(Mouse.CursorPos), nil);
    if ThreadID <> GetCurrentThreadId then
    begin
      if AttachThreadInput(ThreadID, GetCurrentThreadId, true) then
      begin
        icon_neu.Handle := GetCursor;
        AttachThreadInput(ThreadID, GetCurrentThreadId, false);
      end;
    end
    else
      icon_neu.Handle := GetCursor;
    if icon_alt.Handle = icon_neu.Handle then
      result := true
    else
      result := false;
    icon_alt := icon_neu;
  finally
    icon_neu.Free;
  end;
end;
//Inkompatible Typen: 'HICON' und 'procedure, untyped pointer or untyped parameter'
...
Habe leider keine Ahnung von Handle und co - bastel damit so rum ohne es richtig zu verstehen

Gruß Philipp
  Mit Zitat antworten Zitat