在宏完成之前阻止计算机上的任何点击事件

Prevent any click event on the computer until macro has finished

是否有一种方法可以防止在 Access VBA 上的宏结束之前在计算机上单击任何鼠标?宏需要一个特定的应用程序才能成为焦点,所以我不希望用户在宏 运行.

时去其他地方

这是不可能的。您可以随时转到另一个 window 或任务栏。

哟,

我无法在 VBA 中完成,但有些程序可以做到这一点。 因此,您可能必须找到 VBA-ProgramYouChoose-组合的解决方法。

这是link:

https://www.raymond.cc/blog/how-to-restrict-or-disable-keyboard-mouse-and-even-power-button/

这些是他们讨论的节目:

KeyFreeze
ToddlerTrap
Toddler Keys
Kid-Key-Lock
KeyboardLock
Child Lock
Predator
Lock Windows

您将必须测试这些,因为您只想禁用鼠标我会选择 Kid-Key-Lock。

您可以使用 WinApi BlockInput 函数来阻止任何输入,包括任务切换或其他任何内容。

Declare PtrSafe Function BlockInput Lib "User32.dll" (ByVal fBlockIt As Boolean) As Boolean

Private Sub DoStuff()
    On Error GoTo ErrHandler
    BlockInput True
    'Do stuff here
    BlockInput False
    Exit Sub
ErrHandler:
    BlockInput False 'Important! During message boxes, error handling, etc. input will still be blocked
    'Handle error here
Exit Sub

请注意 BlockInput 有点绝对。你根本不能做任何事情,除了 Ctrl + Alt + Delete 退出它。

在某些安全配置中,BlockInput 可以禁用,但通常不需要管理员权限或类似权限即可使用。