python 可以使用 BlockInput() 吗?
我正在寻找其他方法来阻止鼠标和键盘。有些人建议使用BlockInput()。这可以用Python来完成吗?我使用的是Windows XP
Im searching other ways to block mouse and keyboard. Some suggest to use BlockInput(). Can this be done by python? I'm using windows XP
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
可以使用 ctypes 模块调用此类 WinAPI 函数。
您需要知道该函数位于哪个 DLL 中。在本例中,它是 user32.dll(该信息列在您链接的 msdn 文档页面上)。
然后你需要知道它的参数。这个参数需要一个
BOOL
参数,因此我们可以直接使用 Python 的bool
。请参阅文档中返回值的说明。输出将是一个 Python
int
,在这个简单的情况下这是可以的,但您应该知道ctypes
允许您在需要时指定确切的参数和返回值类型。我刚刚在 Windows 7 机器上尝试过,它可以工作,但前提是该进程以提升的权限运行(否则它只返回 0)。由于您运行的是 XP,因此这可能与您无关。
Such WinAPI functions can be called using
ctypes
module.You need to know in which DLL the function is. In this case it's user32.dll (that info is listed on the msdn documentation page you linked).
Then you need to know its params. This one takes one
BOOL
argument so we can use Python'sbool
directly.See the explanation of the return value in the docs. The output will be a Python
int
which is ok in this simple case but you should know thatctypes
lets you specifiy the exact argument and return value types if needed.I've just tried that on Windows 7 box and it works but only if the process is running with elevated privileges (otherwise it just returns 0). Since you're running XP, this might be irrelevant to you.
如果您想实现与已接受的答案相同的效果,但没有管理员权限/提升的权限,您可以在此处查看我对类似问题的回答:
在 python 中禁用或锁定鼠标和键盘?
If you want to achieve the same as in the accepted answer but without Admin rights/elevated priviledges, you can check my answer to a similar question here:
disable or lock mouse and keybord in python?