Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Mausklick abfangen ohne Hook (https://www.delphipraxis.net/146044-mausklick-abfangen-ohne-hook.html)

cookie22 12. Jan 2010 19:47


Mausklick abfangen ohne Hook
 
hallo,

ich möchte festellen, ob die maus ausserhalb meines programmes geklickt wurde, wo ist egal. ich muss nur wissen, das sie geklickt wurde. allerdings möchte ich nicht extra einen hook installieren. jemand ne idee wie man das machen kann?

gruß,
cookie

Luckie 12. Jan 2010 19:57

Re: Mausklick abfangen ohne Hook
 
Eventuell mit MSDN-Library durchsuchenClipCursor?

Matze 12. Jan 2010 20:05

Re: Mausklick abfangen ohne Hook
 
Hallo,

was möchtest du denn erreichen?
Ich sehe nur einen Sinn dahinter, wenn du feststellen möchtest, wann dein Fenster den Fokus verliert. Ich kann mich natürlich irren.
Falls es stimmen sollte reichen auch Shortcuts, um dein Fenster zum nicht aktiven zu machen (Bsp. Alt + Tab). Das Reagieren von Mausklicks würde somit nichts bringen.

Das kannst du mittels TApplicationEvents (Reiter "Zusätzlich") im Ereignis "OnDeactivate" feststellen.
Falls dir das nicht weiterhilft, sorry. Ich kann mir nur nicht erklären, wo man das sonst benötigt. ;)

Grüße, Matze

cookie22 12. Jan 2010 20:21

Re: Mausklick abfangen ohne Hook
 
es geht um sowas wie eine auto type funktion. ein user soll auf einen button drücken, dann wechsel ich den cursor systemweit mit "SetSystemCursor" zu einem custom cursor. dann soll der user z.B. in ein edit feld klicken und ich starte meine ausfüll sequenz und setze den cursor zurück.


wie kann ich mit clipcursor feststellen, ob geklickt wurde?

busybyte 12. Jan 2010 20:29

Re: Mausklick abfangen ohne Hook
 
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
var w:cardinal;
S:String;
begin
SetCaptureControl(nil);
mouse.Dispatch(w);
label1.caption:= inttostr(mouse.CursorPos.X);
label2.caption:=inttostr(mouse.CursorPos.Y);

S:= 'Maus Up';
if (getasynckeystate(VK_LBUTTON)<>0) then
 S:='Maus Down';
label3.caption:=S;
end;

cookie22 13. Jan 2010 00:48

Re: Mausklick abfangen ohne Hook
 
jo danke, das funktioniert.

ich machs jetzt aber so wie matze vorgeschlagen hat, das reicht völlig. :-D

busybyte 13. Jan 2010 02:49

Re: Mausklick abfangen ohne Hook
 
gerne, matze hat eh recht, das auch mit der tastatur deaktiviert werden kann und somit hat er die einzig richtige lösung für dein problem


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:50 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