![]() |
Maus deaktivieren...
Hi,
ja genau, ich suche einen Code, der die Maus deaktiviert. Komme auf keinen vernüftigen Gedanken... Gruß DJ-SPM |
Wozu? Eventuell gibnt es eine andere, bessere Lösung. Ich kann so was nicht leiden.
|
Unter Window die Maus deaktiveren ?? :shock:
|
Moin Darty,
Zitat:
Wenn Du automatisierte Installationen laufen lässt, incl. der Meldung man möge auf jeden Fall Tastatur und Maus in Ruhe lassen, garantiere ich Dir, dass das oft nicht beachtet wird. Schaltet man die hingegen vorher ab... :mrgreen: |
Ich stimme Sakura zu, solche Manipulationen sind sehr leidvoll. Egal ob Setup oder Anwendung. Windows ist ein "Multitaksing" System und ich habe mir keinen Powerrechner gekauft damit mich ein Setup blockiert.
Zur eigentlichen Frage: mit SetCursorPos() setzt man die Mouse in sein Fenster, dann mit ShowCursor() unsichtbar machen, und final mit ClipCursor() den Bereich in dem die Mouse bewegt werden kann auf minimale Größe beschränken. Da nun der Cursor nicht mehr ausserhalb deines Fensters bewegt werden kann, wird er auch nicht mehr autom. sichtbar gemacht. Wie gesagt, stellt ein Setup/Anwednung solche Sachen mit mir an, fliegt es gnadenlos vom Rechner. (der Taskmanager unter 2000 arbeitet da sehr sicher:) Gruß Hagen |
Sorry, die Beschwerde kam von mir. :wink:
|
T'schuldige Luckie, bin neu hier :)
Noch eine andere Frage: Soll die Mouse systemweit "gesperrt" werden oder ab nur für das eigene Form ?? In deiner Frage hast du dies nicht erwähnt. In einem anderen Thread hier im Forum hast du dich auf deine eigenes Form bezogen (Spieleprogrammierung). In diesem Zusammenhang ist das das Mouse"sperren" sehr wohl sinnvoll. Mit obigen Funktionen ist aber die Lösung deines Problemes möglich. Gruß Hagen |
Zitat:
...:cat:... |
wenn ich Eingaben unterbinden will, dann deaktivier ich einfach alles bis auf den Abbrechen-Button. Man muß nur sicherstellen, dass danach auch alles wieder geht.
|
Korrekt. Alles auf ein TPanel packen und diese Panel.Enabled := False setzen. Das TForm muß dann über .KeyPreview := True natürlich die Kontrolle übernehmen. Das TForm ansich, also Caption,Menu,Frame wäre noch bedienbar.
Gruß Hagen |
Ein eventuell vorhandenes Hauptmenü nicht vergessen. :wink:
|
Moin Hagen,
Zitat:
Mir geht's hierbei nicht um eine "normale" Installation, sondern um die Verteilung von Software in Unternehmen. Da hat der User meist nicht mitzubestimmen, ob er eine Software bekommt oder nicht. ;-) Gerade bei kompletten Systeminstallationen kann eine Abschaltung von Keyboard und Maus die Installation ganz entschieden schützen. |
Ok,
jetzt mal zum AusgangsThread zurück. Also, was ich mit "Maus sperren" meine ist, dass der User die Maus nicht mehr bewegen kann und auch nicht klicken kann. Dies ist für mein Programm eigentlich sehr sinnvoll... @negaH : Keine Angst, es ist kein Setup-Programm und der User kann es selbst entscheiden, wann die Maus gesperrt werden soll und wann nicht. @Luckie : Wozu ich die Maus sperren will, ist doch egal. Wenn du einen Code oder Tipp für mich hast, du wäre ich froh, du würdest ihn mir posten... Ich kann dir nur sagen, das macht Sinn und der User, der genauso denkt, wird diese Funktion benutzen... Würde mich über einen Code freuen, in dem die Maus komplett "einfriert" DJ-SPM |
Wenn du einen Low-Level Maushook installierst (WH_MOUSE_LL) und in der Hauptfunktion das CallNextHookEx nicht aufrufst, kannst du keine Eingabe meher tätigen. Falls du nicht weißt, wie man einen Hook in der Form einichtet, guck einfach mal
![]() ![]() ![]() Funktioniert aber glaub ich nur ab NT, da 98 diesen Maushook gar nicht kennt. |
Zitat:
Ausserdem fällt mir derzeit keine Sache ein bei der das Sinn machen würde, deshalb würd mich das deswegen schon interessieren. |
Nur um mal eine Sache zu nennen wo es Sinn machen würde / könnte: Es gibt eine Reihe Tools, die sozusagen die Arbeitsstation sperren. Sie ermöglichen keine Mauseingaben mehr (Tastatur außerhalb des Programms natürlich auch nicht), und die einzige Eingabemöglichkeit wäre die eines Passwortes zwecks Entsperrung.
Ob so ein Tool in Zeiten von Windows 2000 / XP noch Sinn macht ist allerdings wiederum eine andere Frage. Bei Spielen glaube ich allerdings nicht, dass "Maus sperren" sinnvoll ist, da es dort meist genügt, einfach den Cursor abzuschalten. Bei potentiell bösartigem Code bin ich daher auch dafür, das Anwendungsgebiet zu benennen, denn das ist ja meist nicht so schwer... |
Hallo,
ich hatte vor kurzem das Problem, eine Fremdapplikation zu steuern, wo manche Komponenten keine waren, sondern nur grafische Elemente. Daher bestimmte ich die relative Position dieser Elemente, und schob danach die Maus dorthin und simulierte einen Mausklick. Damit inzwischen der User nicht den Mauscurser in eine andere Richtung verschob, versteckte/schaltete ich die Maus aus :cat:!
Delphi-Quellcode:
Damit schaltete ich die Maus aus (WinXP)
ShowCursor(FALSE); // Cursor aus/ein
ShowCursor(TRUE);
Delphi-Quellcode:
Quelle:
procedure TForm1.Button1Click(Sender: TObject);
function FuncAvail(_dllname, _funcname: string; var _p: pointer): boolean; { Devuelve true si la funcion _funcname esta disponible en la DLL _dllname. Si es asi, almacena en _p la direccion de la función.} var _lib: tHandle; begin Result := false; _p := NIL; if LoadLibrary(PChar(_dllname)) = 0 then exit; _lib := GetModuleHandle(PChar(_dllname)); if _lib <> 0 then begin _p := GetProcAddress(_lib, PChar(_funcname)); if _p <> NIL then Result := true; end; end; var xBlockInput : function(Block: BOOL): BOOL; stdcall; begin if FuncAvail('USER32.DLL', 'BlockInput', @xBlockInput) = true then begin {Bloquear entradas/Disable input} xBlockInput(true); sleep(4000); {Desbloquear/Enable} xBlockInput(false); end; end; ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:34 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