【问题标题】:Why does the BlockInput not work for me ? Did i forget anything?为什么 BlockInput 对我不起作用?我忘了什么吗?
【发布时间】:2019-07-11 22:22:12
【问题描述】:

想短时间屏蔽用户键盘输入,但是方法不行。

公共部分类 NativeMethods {

    [DllImport("user32.dll", EntryPoint = "BlockInput")]
    [return: MarshalAs(UnmanagedType.Bool)]
    public static extern bool BlockInput([MarshalAs(UnmanagedType.Bool)] bool fBlockIt);

}

public class KeyboardBlocker
{

    public static void Block(int span)
    {
        try
        {
            NativeMethods.BlockInput(true);
            Console.WriteLine("should have blocked");
            Thread.Sleep(span);
        }
        finally
        {
            NativeMethods.BlockInput(false);

有人有想法吗?已经谢谢了

【问题讨论】:

  • 究竟是什么不起作用?你从BlockInput 得到的返回值是多少?如果它不为零,您可以使用 GetLastError 获取最后一个错误。
  • 我真的没有得到返回值

标签: c# .net dll user32


【解决方案1】:

显然 BlockInput 函数在 64 位中不起作用。您可以从这里尝试答案: Using BlockInput to block keyboard and mouse input.

【讨论】:

  • 它是如何使用的?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-04-30
  • 2013-09-23
  • 2013-09-08
  • 2019-07-31
  • 2010-10-08
  • 2016-02-27
  • 2019-01-13
相关资源
最近更新 更多