Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?
 
PerlMonks  

Deactivate/Activate Keyboard and mouse under Win32

by Sniper (Scribe)
on Jun 15, 2001 at 02:37 UTC ( #88658=snippet: print w/replies, xml ) Need Help??
Description: 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
Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: snippet [id://88658]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others contemplating the Monastery: (2)
As of 2023-03-21 21:49 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Which type of climate do you prefer to live in?






    Results (60 votes). Check out past polls.

    Notices?