Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Maus deaktivieren... (https://www.delphipraxis.net/6036-maus-deaktivieren.html)

Luckie 27. Jun 2003 12:01

Ein eventuell vorhandenes Hauptmenü nicht vergessen. :wink:

Christian Seehase 27. Jun 2003 12:39

Moin Hagen,

Zitat:

Zitat von negaH
Egal ob Setup oder Anwendung. Windows ist ein "Multitaksing" System und ich habe mir keinen Powerrechner gekauft damit mich ein Setup blockiert.

Das hab' ich jetzt einfach mal auf meine Aussage bezogen ;-)

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.

TheMiller 27. Jun 2003 13:03

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

OrallY 27. Jun 2003 13:27

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 hier und hier, außerdem kannst du dir noch das Tutorial von Assarbad (was er eigentlich demnächst auf Vordermann bringen wollte :wink:) angucken, zu finden auf der www.assarbad.net unter downloads->tutorials->Hooks.
Funktioniert aber glaub ich nur ab NT, da 98 diesen Maushook gar nicht kennt.

CepheidenX 27. Jun 2003 16:36

Zitat:

Zitat von DJ-SPM
@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...

Ich denke nicht das es bei solchen Funktioen völlig egal ist. Immerhin kann man damit recht "unfaire" Dinge machen. Wo soll denn die verbreitung von eventuell schädlichen Code anfangen?
Ausserdem fällt mir derzeit keine Sache ein bei der das Sinn machen würde, deshalb würd mich das deswegen schon interessieren.

OregonGhost 27. Jun 2003 17:43

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...

APP 27. Jun 2003 18:19

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:
ShowCursor(FALSE); // Cursor aus/ein
ShowCursor(TRUE);
Damit schaltete ich die Maus aus (WinXP)
Delphi-Quellcode:
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;
Quelle:Disable mouse an keyboard in whole Windows


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:03 Uhr.
Seite 2 von 2     12   

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