![]() |
Auf Cursorveränderung reagieren
Hallo,
Mein Programm soll wenn der Cursor von crDefault auf crHandpoint wechselt einen Linkscklick durschführen So habe ich es bisher probiert:
Delphi-Quellcode:
Jedoch wird so der Mausklick nie ausgeführt egal welcher cursor gerade zu sehen ist.
if Screen.Cursor = crHandPoint then
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0); mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0); Ich denke dass dies daran liegt das er nur den aktuellen Standard Cursor überprüft, nicht den aktuell angezeigten. Denn wenn ich den Code so umändere:
Delphi-Quellcode:
wird der Klick sofort ausgeführ auch wenn nicht der crDefault Cursor
if Screen.Cursor = crDefault then
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0); mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0); gerade angezeigt wird. Ich hoffe mir kann jemand helfen ! |
Re: Auf Cursorveränderung reagieren
du kontrollierst ja mit deinem code nur zur ausführeung den cursor status...
du musst z.b. mit nem timer ständig überprüfen... |
Re: Auf Cursorveränderung reagieren
Das sind alle relevanten Funktionen zum Cursor:
![]() Weiß nicht, ob es eine Nachricht gibt, wenn der Cursor gewechselt wird. Jedenfalls kann man mit WM_SETCURSOR den Cursor wechseln. |
Re: Auf Cursorveränderung reagieren
Delphi-Quellcode:
:wink:
if Screen.Cursor = crDefault then
begin mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0); mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0); end; |
Re: Auf Cursorveränderung reagieren
Zitat:
|
Re: Auf Cursorveränderung reagieren
Zitat:
nach Beschreibung GetCursorInfo. Habs aber nicht getestet. Gruss Reinhard |
Re: Auf Cursorveränderung reagieren
Zitat:
steige da leider nicht ganz durch... |
Re: Auf Cursorveränderung reagieren
keiner ?
|
Re: Auf Cursorveränderung reagieren
Delphi-Quellcode:
Damit wird die genannte funktion ausgeführt. In bla stehen dann deine Cursor infos...
procedure TForm1.Button1Click(Sender: TObject);
var bla : TCursorInfo; begin bla.cbSize := sizeof (bla); GetCursorInfo (bla); end; |
Re: Auf Cursorveränderung reagieren
Zitat:
![]() oder ![]() |
Re: Auf Cursorveränderung reagieren
Zitat:
Delphi-Quellcode:
Der Klick wird nach wie vor nicht ausgeführt, außer ich ändere es auf crDefault.
procedure TForm1.Timer2Timer(Sender: TObject);
var bla : TCursorInfo; begin bla.cbsize := sizeof (bla); GetCursorInfo (bla); if bla.cbsize =crHandpoint then begin mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0); mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0); Timer2.Enabled:=false; end; end;. Wieso überprüft es nur den eingestellten Cursor und nicht den angezeigten ?? |
Re: Auf Cursorveränderung reagieren
Zitat:
Gruss Reinhard |
Re: Auf Cursorveränderung reagieren
Zumal du immer noch nicht den Teil mit der IF-Abfrage mit begin und end eingeschlossen hast.
|
Re: Auf Cursorveränderung reagieren
Zitat:
|
Re: Auf Cursorveränderung reagieren
Zitat:
meines Wissens kann man nicht feststellen, wie der aktuelle Cursor aussieht - man bekommt nur ein Handle zum Cursor, und man könnte höchstens für die bekannten Cursortypen ein Handle anfordern und mit diesem vergleichen, aber ohne Erfolgsgarantie: der Cursor kann genausogut von einem fremden Programm geladen worden sein. Auch bei den Standardhandles bin ich mir nicht sicher, ob verschiedene Programme für den gleichen Cursor auch das gleiche Handle bekommen, ist aber wahrscheinlich. Da du aber nicht einmal Records kennst, liegt das weit ausserhalb deiner Möglichkeiten. Im konkreten Fall wird es eh nicht funktionieren, weil: // Comments from CC Chong: // "Yes IDC_HAND is the hidden resource of Windows. On Win98 and above (or since // ActiveDesktop Update in IE4, if I'm not mistaken) Windows has the IDC_HAND // cursor built in to the system." // "But it is not the same as Delphi's crHandPoint. Delphi doesn't use Windows' // IDC_HAND. crHandPoint is Delphi's own inclusion in it's Controls.res (found // in your Delphi\lib)." crHandpoint entspricht also NICHT dem IDC_HAND Cursor anderer Software!!! Gruss Reinhard |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:07 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