Maus deaktivieren
-
Hallo,
für meine Anwendung müsste ich kurzzeitig die Maus deaktivieren lassen (zumindest die Maustasten, so dass auch außerhalb meiner Anwendung nicht geklickt werden kann, am besten wäre, wenn auch der Mauszeiger ausgeblendet werden würde).
Weiß jemand wie das geht?
Wäre super!
-
Über eine DLL einen Maushook installieren un alle Ereignisse abfangen
http://www.marquardtnet.info/cecke/dlls.3/3_chhook.html
U.U. reicht dir vielleicht aber auch ein SetCapture welches alle Mausereignisse an ein Fenster sendet.
-
Wie fange ich denn die Ereignisse ab?
-
Quatsch.
Ruf ShowCursor aus der WinAPI auf.
-
Bevor du hier voreilig Quatsch sagst, würde ich mal folgendes beachten:
- ShowCursor gilt nur für die Anwendung aus der es aufgerufen wird. Die Anforderung hier war eine andere
- ShowCursor schaltet nur die Maus unsichtbar. Ereignisse werden dennoch gesandt und wenn man einen Button trifft wird dieser ausgelöst.
Wenig Quatsch :p
-
OK, aber ich weiß jetz immer noch nicht, wie ich das anstellen soll. Gibts nicht in der user32.dll eine Funktion, die die Maus deaktiviert?
-
Nein, leider nicht
Hast du dir in der Win 32 API SetCapture angesehen?
Hast du dir die Seite auf die der Link wies angesehen?
-
ja, hab ich mir angesehen.
aber ich versteh nicht ganz wie der aufruf aussehen soll.ich hab da mal was gefunden, aber das ist leider für vb:
http://www.activevb.de/tipps/vb6tipps/tipp0413.htmldas funktioniert anscheinend mit der user32.
könnte man das dann nicht mit c++ auch so machen?
-
ShowCursor + BlockInput
-
Danke, nur ich steige damit immer noch nicht ganz durch.
Wäre super, wenn wer einen kleinen Beispiel-Code schreiben könnte.
Vielen Dank!
-
Dieser Thread wurde von Moderator/in Jansen aus dem Forum VCL/CLX (Borland C++ Builder) in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Hätte evtl. jemand kurz Zeit, mir ein Beispiel mit BlockInput zu schreiben?
-
jetz hab ichs:
#include <winable.h> void __fastcall TForm1::Button1Click(TObject *Sender) { BlockInput(true); }
-
Die funktion ist ja geil kannte ich überhaupt nicht

-
Ja, das ist auch eine Lösung:
ShowCursor(false); BlockInput(true);BlockInput muss wohl irgendwie neuer sein. Meine Hilfe zum SDK kennt sie nicht.
Auch ist ein#include<winable.h>erforderlich
-
Witzig! Mein Builder sagt: "Unable to open include file 'Winable.h'"

-
Neues SDK herunterladen! Wie gesagt... scheint neuer zu sein!
-
Wenn ich mir die neue SDK runterlade,
laufen die Programme dann auchnoch auf Win 95/98/ME
-
Noch ne Frage:
Welche SDK soll ich mir denn runterladen?
auf Microsoft.com sind ja zig Updates!
http://www.microsoft.com/downloads/results.aspx?NextOrPrevClause=2%7c%2b707&productID=&CategoryID=&freetext=SDK&DisplayLang=de&DisplayEnglishAlso=on&sortCriteria=popularity&startDate=&period=0&type=&sortOrder=ascending&nr=20
-
Das hat nix damit zu tun, ob sie noch auf Win 9x laufen... Sie laufen quasi nur 'besser' auf den neunen Systemen, sprich es sind neue Funktionen 'drin'.
EinM schrieb:
Welche SDK soll ich mir denn runterladen?
Klickst du zurück Button deines Browsers und dann steht da ganz oben über allen Threads im WinAPI Forum ein Link^^
-
BlockInpiut läßt sich durch Strg+Entf+alt wieder aufheben. Darf man fragen warum du verhindern willst, dass der Benutzer normal mit seinem Windows weiterarbeiten kann?