AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Maus sperren während Tastatureingabe
Thema durchsuchen
Ansicht
Themen-Optionen

Maus sperren während Tastatureingabe

Ein Thema von blackdrake · begonnen am 17. Nov 2008 · letzter Beitrag vom 8. Apr 2010
 
blackdrake

Registriert seit: 21. Aug 2003
Ort: Bammental
618 Beiträge
 
Delphi 10.3 Rio
 
#28

Re: Maus sperren während Tastatureingabe

  Alt 19. Nov 2008, 21:26
Zitat von Apollonius:
Das ist auch der Grund, warum eine MMF nötig ist: Alle Instanzen haben einen unabhängigen Satz von globalen Variablen.
Achso, das wird dann auch der Grund sein, wieso der Timer im Notepad einen Interval ("var lock_interval") von 0 statt 3000 hatte.

Also mache ich jetzt eine Planänderung:

1. Host-App startet DLL und die Hooks
2. DLL erkennt einen Tastatur-Tastendruck und sagt der Host-App "WM_ANYKEYPRESSED", die Host-App merkt sich den GetTickCount()
3. DLL erkennt einen Maus-Tastendruck und fragt Host-APP "WM_LMB_KEY_CONFIRM", was dann von der Host-App mit 10 oder 0/Irgendwas/Timeout beantwortet wird, diese Entscheidung ist abhängig vom Abstand zum zuvor gemerkten GetTickCount(), der größer oder kleinergleich 3 Sekunden ist
4a. Wird nicht 10 geantwortet, dann akzeptiert die DLL das Mausereignis
4b. Wird 10 geantwortet, dann verwirft die DLL das Mausereignis und sendet an die Host-App "WM_LMB_LOCKED"
5. Host-App reagiert auf "WM_LMB_LOCKED", in dem der Systemmauszeiger auf crNo gesetzt wird (hier mein anderes Problem)
6. In der DLL wird nun 3 Sekunden gewartet und sendet dann "WM_LMB_UNLOCKED" (da kommt wieder mein NonVCL Timer-Problem )
7. Host-App reagiert auf "WM_LMB_UNLOCKED", in dem der Systemmauszeiger wieder neutralisiert wird

Alles korrekt geplant? Ich war/bin mir unschlüssig, ob es sinnvoll ist, dass sowohl die Host-App als auch die DLL einen 3-Sekunden-Timer hat. ob der 3-Sekunden-Timer in der DLL oder in der Host-App sein sollte.

Zitat von Apollonius:
Hast du es eigentlich schon einmal mit GetAsyncKeyState versucht, um den Status der Steuerungs-Taste zu überprüfen?
Ja, hatte ich auch versucht, aber vielleicht habe ich irgendwas mit SHL o.ä. nicht beachtet. Ich habe verschiedene Sourcen gegoogelt, aber es hat keinen Erfolg erbracht (bzw. viele Beispiele gingen von einem Keycode des Ereignisses OnKeyPress aus)
Daniel Marschall
  Mit Zitat antworten Zitat
 


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 06:23 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