Search
Module:
Directory

   Desktop Functions:

   Smart Device Functions:


Show Recent Changes
Subscribe (RSS)
Misc. Pages
Comments
FAQ
Helpful Tools
Playground
Suggested Reading
Website TODO List
Download Visual Studio Add-In

BlockInput (user32)
 
.
Summary

C# Signature:

[DllImport("user32.dll")]
static extern bool BlockInput(bool fBlockIt);

VB.Net Signature:

Declare Fuhhhhhon BlockInput Lib "user32" (ByVal fBlockIt As Boolean) As Boolean

Or use:

    ''' <summary>The BlockInput function blocks keyboard and mouse input events from reaching applications
    ''' </summary>
    ''' <param name="fBlockIt">[in] Specifies the function's purpose. If this parameter is non-zero, keyboard
    ''' and mouse input events are blocked. If this parameter is zero, keyboard and mouse events are unblocked.
    ''' </param>
    ''' <returns>If the function succeeds, the return value is nonzero.
    ''' If input is already blocked, the return value is zero.
    ''' To get extended error information, call Marshal.GetLastWin32Error()</returns>
    ''' <remarks>Note that only the thread that blocked input can successfully unblock input</remarks>
    <DllImport("user32.dll", EntryPoint:="BlockInput", SetLastError:=True, CharSet:=CharSet.Auto, CallingConvention:=CallingConvention.StdCall)>
    Friend Shared Function BlockInput(fBlockIt As Boolean) As Integer
    End Function

Note that this definition does not use Boolean input and return types

Notes:

This method requires administrator rights.

Blocks or unblocks mouse and keyboard input.

Can be disabled by pressing Ctrl+Alt+Del.

Tips & Tricks:

Useful to create a temporary block in input for sensitive GUI operations. For instance when manually activating a screen saver from within a GUI function, a short blocking delay will prevent the user mouse movements directly after selection from accidently escaping the screen saver.

Sample Code:

VB.Net:
Class BlockInput

    <DllImport("user32.dll", EntryPoint:="BlockInput", SetLastError:=True, CharSet:=CharSet.Auto, CallingConvention:=CallingConvention.StdCall)>
    Friend Shared Function BlockInput(fBlockIt As Boolean) As Boolean
    End Function

   Friend Shared Function DisableInput(makeDisabled As Boolean) as Boolean
      Return BlockInput(makeDisabled)
   End Function

End Class

Alternative Managed API:

The ManagedWindowsApi project (http://mwinapi.sourceforge.net) provides an InputBlocker class that can block input.

Documentation
BlockInput on MSDN

Please edit this page!

Do you have...

  • helpful tips or sample code to share for using this API in managed code?
  • corrections to the existing content?
  • variations of the signature you want to share?
  • additional languages you want to include?

Select "Edit This Page" on the right hand toolbar and edit it! Or add new pages containing supporting types needed for this API (structures, delegates, and more).

 
Access PInvoke.net directly from VS:
Terms of Use
Edit This Page
Find References
Show Printable Version
Revisions