我正在寻找一些可以阻止键盘和鼠标输入的代码(最好是 C#)。
问问题
46792 次
3 回答
23
扩展 Josh 的(正确)答案。这是该方法的 PInvoke 签名。
public partial class NativeMethods {
/// Return Type: BOOL->int
///fBlockIt: BOOL->int
[System.Runtime.InteropServices.DllImportAttribute("user32.dll", EntryPoint="BlockInput")]
[return: System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.Bool)]
public static extern bool BlockInput([System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.Bool)] bool fBlockIt) ;
}
public static void BlockInput(TimeSpan span) {
try {
NativeMethods.BlockInput(true);
Thread.Sleep(span);
} finally {
NativeMethods.BlockInput(false);
}
}
编辑
添加了一些代码来演示如何阻止间隔
于 2009-02-25T15:55:13.900 回答
7
查看BlockInput Win32 函数
听起来像是一些有趣的测试:)
于 2009-02-25T15:49:16.317 回答
0
using System.Runtime.InteropServices;
public partial class NativeMethods
{
[DllImport("user32.dll", EntryPoint = "BlockInput")]
[return: MarshalAs(UnmanagedType.Bool)]
internal static extern bool BlockInput([MarshalAs(UnmanagedType.Bool)] bool fBlockIt);
}
internal
不是public
。所以不属于CA1401
公共类型中的公共或受保护方法具有System.Runtime.InteropServices.DllImportAttribute属性
于 2021-05-06T23:14:23.863 回答