[DllImport("user32.dll")]
static extern bool BlockInput(bool fBlockIt);
Declare Function 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 <MarshalAs(UnmanagedType.Bool)> Boolean
End Function
Note that this definition does not use Boolean input and return types
None.
This method requires administrator rights.
Blocks or unblocks mouse and keyboard input.
Can be disabled by pressing Alt+Ctrl+Del.
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.
VB.Net:
Class DK
Declare Function BlockInput Lib "user32" (ByVal fBlockIt As Boolean) As Boolean
Public Shared Sub DisableInput(ByVal makeDisabled As Boolean)
Dim n As Boolean = BlockInput(makeDisabled)
End Sub
End Class
The ManagedWindowsApi project (http://mwinapi.sourceforge.net) provides an InputBlocker class that can block input.