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 Maus vorübergehend global deaktivieren (https://www.delphipraxis.net/148395-maus-voruebergehend-global-deaktivieren.html)

matthew77 1. Mär 2010 09:27


Maus vorübergehend global deaktivieren
 
Hallo,
ich weiss, das es schon einige Threads mit ähnlichen Themen gibt, aber mein Problem habe ich so nicht gelöst bekommen.
Folgendes: in meiner Software soll es einen Button "Reinigungsmodus" geben, der wenn gedrückt für 30 Sekunden alle Mauseingaben komplett blockt. Der Bildschirm ist nämlich ein Touchscreen und wird leicht mal dreckig. Beim saubermachen kann es passieren, dass man alle möglichen Mausevents auslöst.
Ich habe das Problem mit einem Maushook lösen wollen (Maushook returned nur "1"). Dann hatte ich aber das Problem, dass nach dem Uninstall des Hooks plötzlich alle vorher geblockten Mausevents plötzlich durchkommen. Beispiel: Hook aktiv und ich klicke auf eine Checkbox -> nichts passiert. Hook wieder inaktiv: die Checkbox ist plötzlich angehakt. Hat jemand eine Idee?

Vielen Dank!

jfheins 1. Mär 2010 09:37

Re: Maus vorübergehend global deaktivieren
 
Probier mal MSDN-Library durchsuchenBlockInput :stupid:

matthew77 1. Mär 2010 09:59

Re: Maus vorübergehend global deaktivieren
 
Danke, BlockInput funktioniert! :-D

SirThornberry 1. Mär 2010 10:04

Re: Maus vorübergehend global deaktivieren
 
Es gibt auch eine andere Variante (meiner Meinung nach bessere). Erstelle einfach ein Formular welches im Vollbild angezeigt wird.
Zum einen könntest du auch dort mit den 30 Sekunden arbeiten, zum anderen könntest du auch realisieren das dieses Fomular geschlossen wird indem man zum Beispiel verschiedene Buttons in einer festgelegten Reihenfolge anklicken muss.

Alaitoc 1. Mär 2010 10:25

Re: Maus vorübergehend global deaktivieren
 
Da werf ich einfach mal den Begriff "Zustandshandling" ein bzw Zustand ( Entwurfsmuster ). Vll auch ganz interessant,
jenachdem wie groß das Projekt ist. :)

MfG Alaitoc


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