Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Maus Event ausserhalb des Formulars? (https://www.delphipraxis.net/21135-maus-event-ausserhalb-des-formulars.html)

Chris P 28. Apr 2004 12:35


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???

fiasko 28. Apr 2004 12:36

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

Chris P 28. Apr 2004 12:37

Re: Maus Event ausserhalb des Formulars?
 
Sorry aber wie macht man das?

Kannst du mir ein Beispiel geben

Dax 28. Apr 2004 12:38

Re: Maus Event ausserhalb des Formulars?
 
Erst holst du die Mouse-Posotion:
Delphi-Quellcode:
var t: TPoint;
begin
  GetCursorPos(t);
end;
Dann holst du dir das handle des Fensters unter dem Cursor:
Delphi-Quellcode:
var h: HWND;
begin
  h := WindowFromPoint(t);
end;
Mit dem Handle kannst du dann machen was du willst.

Chris P 28. Apr 2004 12:40

Re: Maus Event ausserhalb des Formulars?
 
Aber wie übertrage ich das dann auf einen Mausklick ausserhalb des formulars?

fiasko 28. Apr 2004 12:41

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.

Dax 28. Apr 2004 12:46

Re: Maus Event ausserhalb des Formulars?
 
fiasko hat Recht.

So was geht NUR mit Hooks, check mal die OH unter SetWindowsHookEx.

Chris P 28. Apr 2004 12:48

Re: Maus Event ausserhalb des Formulars?
 
ok danke!

Wenns net so richtig funktioniert, melde ich mich noch ma!

Christian Seehase 28. Apr 2004 18:58

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;

Chris P 28. Apr 2004 21:07

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 06:16 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz