![]() |
Maus Event ausserhalb des Formulars?
Hi Leute,
ich habe folgendes Problem: Ich möchte den Mauszeiger über ein Objekt das sich ausserhalb des Formulars befindet bewegen und dessen Handle angezeigt bekommen. Das mit dem Handle funktioniert doch mit WindowFromPoint oder? Aber wie bekomme ich das mit dem Mauszeiger hin? Das Formular hat ja das onMouseMove Ereignis, aber wie ist das mit dem ganzen Bildschirm??? |
Re: Maus Event ausserhalb des Formulars?
ich würde mit nem Hook die Mausnachrichten abhören, da sollte dann auch irgendwo das Handle mit enthalten sein
|
Re: Maus Event ausserhalb des Formulars?
Sorry aber wie macht man das?
Kannst du mir ein Beispiel geben |
Re: Maus Event ausserhalb des Formulars?
Erst holst du die Mouse-Posotion:
Delphi-Quellcode:
Dann holst du dir das handle des Fensters unter dem Cursor:
var t: TPoint;
begin GetCursorPos(t); end;
Delphi-Quellcode:
Mit dem Handle kannst du dann machen was du willst.
var h: HWND;
begin h := WindowFromPoint(t); end; |
Re: Maus Event ausserhalb des Formulars?
Aber wie übertrage ich das dann auf einen Mausklick ausserhalb des formulars?
|
Re: Maus Event ausserhalb des Formulars?
Ich hatte mal ne Bildschirmlupe geschrieben die Hooks verwendet. Falls das noch von interesse ist kann ich das mal posten wenn ich @home bin.
|
Re: Maus Event ausserhalb des Formulars?
fiasko hat Recht.
So was geht NUR mit Hooks, check mal die OH unter SetWindowsHookEx. |
Re: Maus Event ausserhalb des Formulars?
ok danke!
Wenns net so richtig funktioniert, melde ich mich noch ma! |
Re: Maus Event ausserhalb des Formulars?
Moin Chris,
wenn Du damit leben kannst, vorher in Deinem Programm die linke Maustaste zu drücken und dann gedrückt zu lassen, während Du mit dem Cursor ausserhalb Deines Programmes navigierst, geht's auch ohne Hooks.
Delphi-Quellcode:
// Einzutragen in ein beliebiges OnMouseDown Event
var ptCursor : TPoint; hWindow : DWord; begin if Button <> mbLeft then exit; repeat Application.ProcessMessages; GetCursorPos(ptCursor); hWindow := WindowFromPoint(ptCursor); // und mit dem gefundenen Handle etwas machen until GetAsyncKeyState(VK_LBUTTON) = 0; end; |
Re: Maus Event ausserhalb des Formulars?
Das ist ein guter Tipp.
Aber ich würde auch gerne wissen, wie man das mit einem Hook macht. Ein Bsp: Ich will mich mit der Maus über ein Objekt bewegen und dessen Handle angezeigt bekommen. Kann mir jemand einen Source oder zumindest einen Ansatz geben, denn von der Windows-API hab ich keinen Plan. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:25 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz