如何全局隐藏和禁用游标?

时间:2010-05-03 17:45:47

标签: c++ windows delphi

我有两个问题:

  1. 如何隐藏所有程序的光标?我试图通过使用隐藏光标 ShowCursor ,但它只适用于我的程序。移动时光标仍然出现 光标在我的程序之外。
  2. 如何禁用所有程序的鼠标操作?我使用SetWindowsHookEx挂钩鼠标并阻止其他程序处理鼠标操作。我可以勾选点击,但问题是我无法挂钩“移动”。当我将鼠标移动到菜单或系统按钮(“最小化/恢复/关闭”)时,它们会突出显示。这意味着他们仍然可以“看到”鼠标。
  3. 有人可以帮我吗?

4 个答案:

答案 0 :(得分:4)

我不禁想知道你想要做什么,但是假设你有一个表现良好的应用程序,最简单的方法是使用SetCaptureReleaseCapture当你的应用程序有一个前景中的窗口。您还可以使用ClipCursor(RECT *)确保光标停留在您控制的窗口中。

答案 1 :(得分:0)

全局隐藏游标很困难。您可以创建一个全屏透明窗口并使用ShowCursor,但当然它也会接收所有鼠标事件。也许它适用于您的特定情况,因为您还想禁用鼠标输入。

您可以使用带有SetWindowsHookEx挂钩的WH_MOUSE_LL来禁用鼠标移动。如果从钩子过程返回非零值,鼠标光标将保持不变。

所有这一切,听起来好像是在尝试做一些邪恶的事情,或者至少是你的用户可能不喜欢的事情。我建议你再三思考这是否真的是你需要的。

答案 2 :(得分:0)

您可以使用SetCursorPos将光标保持在窗口的中心位置。请不要隐藏我的鼠标光标,这不是你的。

答案 3 :(得分:-1)

唯一合理的理由(我可以想象)就是建立一个“自助终端”。如果这是您的目标,请搜索或重新说明问题为Kiosk问题。