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_ParamsList, $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;