http://qs321.pair.com?node_id=88658

It's a Snippet (part of module i'm writing) to
deactivate/activate Keyboard and Mouse in many script to
have a UserProof Script ;-)

CTRL+ALT+DEL reactivate both :-(

use strict; use Win32::API; # Constants _BlockInput parameter sub LOCK {1}; sub UNLOCK {0}; ###################################################################### +## # Name : _BlockInput + # # + # # input : LOCK (1) = Lock Keyboard and Mouse + # # UNLOCK (0) = Unlock Keyboard and Mouse + # # + # # !!! WARNING !!! a simple CTRL+ALT+DEL unblock all + # ###################################################################### +## sub _BlockInput { my $value = shift; my $Library = "user32"; my $Function = "BlockInput"; my $ref_ParamsList = ['I']; my $ReturnValue = 'I'; my $BlockInput = new Win32::API($Library, $Function, $ref_ParamsLi +st, $ReturnValue) or die $^E; $BlockInput->Call($value); } sub LockInput { _BlockInput( LOCK ); } sub UnlockInput { _BlockInput( UNLOCK ); } # Sample to use print "START\n"; LockInput; print "Try to move mouse and type keys ;-)\n"; sleep 5; UnlockInput; print "You are free now!\n"; print "END\n"; sleep 1; exit;

Replies are listed 'Best First'.
Re: Deactivate/Activate Keyboard and mouse under Win32
by jplindstrom (Monsignor) on Jun 16, 2001 at 22:35 UTC
    Just a minor point, but you donīt have to create a new API object each time you call it. So this line:
    my $BlockInput = new Win32::API($Library, $Function, $ref_ParamsList, +$ReturnValue) or die $^E;
    could equally well be located outside the sub. Just a thought.

    /J

      Yes, you're right,
      it's a bad Copy/Paste when i extracted this Snippet from the module i'm writing...

      David "Sniper" Rigaudiere

Re: Deactivate/Activate Keyboard and mouse under Win32
by Anonymous Monk on Dec 23, 2015 at 14:17 UTC
    This does not work anymore since Windws8 as Microsoft does not allow it anymore. This action require to be run as Administrator