AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Maus Event ausserhalb des Formulars?
Thema durchsuchen
Ansicht
Themen-Optionen

Maus Event ausserhalb des Formulars?

Ein Thema von Chris P · begonnen am 28. Apr 2004 · letzter Beitrag vom 28. Apr 2004
Antwort Antwort
Seite 1 von 2  1 2      
Chris P

Registriert seit: 8. Mär 2004
230 Beiträge
 
Delphi 7 Enterprise
 
#1

Maus Event ausserhalb des Formulars?

  Alt 28. Apr 2004, 12:35
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???
  Mit Zitat antworten Zitat
Benutzerbild von fiasko
fiasko

Registriert seit: 10. Dez 2002
Ort: Dresden
506 Beiträge
 
#2

Re: Maus Event ausserhalb des Formulars?

  Alt 28. Apr 2004, 12:36
ich würde mit nem Hook die Mausnachrichten abhören, da sollte dann auch irgendwo das Handle mit enthalten sein
Thomas Liske
Posts comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
  Mit Zitat antworten Zitat
Chris P

Registriert seit: 8. Mär 2004
230 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Maus Event ausserhalb des Formulars?

  Alt 28. Apr 2004, 12:37
Sorry aber wie macht man das?

Kannst du mir ein Beispiel geben
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#4

Re: Maus Event ausserhalb des Formulars?

  Alt 28. Apr 2004, 12:38
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.
  Mit Zitat antworten Zitat
Chris P

Registriert seit: 8. Mär 2004
230 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Maus Event ausserhalb des Formulars?

  Alt 28. Apr 2004, 12:40
Aber wie übertrage ich das dann auf einen Mausklick ausserhalb des formulars?
  Mit Zitat antworten Zitat
Benutzerbild von fiasko
fiasko

Registriert seit: 10. Dez 2002
Ort: Dresden
506 Beiträge
 
#6

Re: Maus Event ausserhalb des Formulars?

  Alt 28. Apr 2004, 12:41
Ich hatte mal ne Bildschirmlupe geschrieben die Hooks verwendet. Falls das noch von interesse ist kann ich das mal posten wenn ich @home bin.
Thomas Liske
Posts comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#7

Re: Maus Event ausserhalb des Formulars?

  Alt 28. Apr 2004, 12:46
fiasko hat Recht.

So was geht NUR mit Hooks, check mal die OH unter SetWindowsHookEx.
  Mit Zitat antworten Zitat
Chris P

Registriert seit: 8. Mär 2004
230 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: Maus Event ausserhalb des Formulars?

  Alt 28. Apr 2004, 12:48
ok danke!

Wenns net so richtig funktioniert, melde ich mich noch ma!
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Maus Event ausserhalb des Formulars?

  Alt 28. Apr 2004, 18:58
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;
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Chris P

Registriert seit: 8. Mär 2004
230 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: Maus Event ausserhalb des Formulars?

  Alt 28. Apr 2004, 21:07
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.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:46 Uhr.
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