Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw
 
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 :-(

David "Sniper" Rigaudiere

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;
Comment on Deactivate/Activate Keyboard and mouse under Win32
Download Code
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

Back to Snippets Section

Log In?
Username:
Password:

What's my password?
Create A New User
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 musing on the Monastery: (5)
As of 2014-07-26 11:10 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    My favorite superfluous repetitious redundant duplicative phrase is:









    Results (175 votes), past polls