在 Windows 资源管理器中禁用 Ctrl+Z 快捷方式或清除撤消历史记录?

在 Windows 资源管理器中禁用 Ctrl+Z 快捷方式或清除撤消历史记录?

有没有办法禁用Windows 资源管理器中的CTRL+ Z(撤消)快捷键?或者,有没有办法让 Windows 资源管理器“忘记”其撤消历史记录?

我之所以问这个问题,是因为你可能在 Explorer 中执行了一些文件操作(复制、重命名等),并且可能几天或更长时间没有重启(而是选择休眠)。问题是,如果你不小心按了一次或多次CTRL+ Z(通常会弄错前台运行的应用程序;使用双显示器设置会增加这种可能性),你可能会撤销很久以前做过的事情,却没有意识到发生了什么。

即使您意识到发生了什么,您也可能不记得几天前执行的最后几个操作是什么。据我所知,Windows 资源管理器中没有“重做”功能来拯救您。我可以想象这种错误可能导致很多问题的场景。

如果可以禁用快捷方式,至少可以强制您Edit > Undo在执行某些愚蠢操作之前使用该菜单项。否则,如果可以定期清除撤消历史记录,则可以防止撤消一些非常旧的操作。

附录:对于那些有兴趣实现这一点的人,我创建了一个德国工商会静默运行的文件(#NoTrayIcon选项)从我的 Windows 启动文件夹中。除了我加入的一些其他有用的快捷方式外,它看起来是这样的:

#NoTrayIcon
SetTitleMatchMode RegEx
return

; Disable Ctrl+Z shortcut in Windows Explorer
;
#IfWinActive ahk_class ExploreWClass|CabinetWClass
^z::return
#IfWinActive

如果您更喜欢反馈而不是CTRL简单Z地不做任何事,请播放默认声音或使用MsgBox以出现对话框。

#IfWinActive ahk_class ExploreWClass|CabinetWClass
^z::
    ;Uncomment the feedback option you prefer below
    ;SoundPlay *-1
    ;MsgBox Ctrl+Z has been disabled.
return
#IfWinActive

答案1

我用 C 语言编写了一个程序来禁用“撤消”和“重做”的快捷方式,因为这两者都可能导致事故。

该计划可以在以下网址找到:http://purl.org/net/dweundo

它有一个安装程序,如果您愿意,它可以在开始菜单的“启动”文件夹中添加一个快捷方式,这样该程序就会在您登录时启动。

答案2

思考你可以有自动热键覆盖现有的快捷方式。

^z::
return

不会做Ctrl+z什么也不做

编辑:这将适用于任何地方。如果仅在资源管理器中应用,请尝试以下操作:

#IfWinActive ahk_class ExploreWClass
^z::
#IfWinActive ahk_class CabinetWClass
^z::
return
#IfWinActive

答案3

11 年过去了,虽然 explorer 中已经添加了重做功能,但仍然没有提示,错误仍然时有发生 :(
但刚才我在https://www.winhelponline.com/blog/disable-undo-redo-feature-in-windows/事实证明这是一个完美的解决方案(似乎是一个新功能;未在旧系统上测试过)。好处是您不必安装或运行任何新东西,只需在注册表中添加一个DWORD带有名称的零值即可。只需MaxUndoItemsHKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced笔记禁用资源管理器中的撤消和重做功能完全地所以你之后也无法在上下文菜单中执行此操作。经过多年,我终于可以摆脱它了所谓的“捷径”
(好吧,如果撤销和重做仍然保留在上下文菜单中或者可以将它们分配给其他键,那就更好了。但我们不应该对微软施加太大的压力 XD)

答案4

与其他答案一样,此 AutoHotKey 脚本可捕获资源管理器窗口,还可捕获桌面:

#IfWinActive ahk_class CabinetWClass ; Explorer
^z::
#IfWinActive ahk_class ExploreWClass ; Explorer (legacy)
^z::
#IfWinActive ahk_class Progman ; Desktop
^z::
#IfWinActive ahk_class WorkerW ; Desktop shown by Win+D
^z::
    MsgBox Ctrl+Z has been disabled.
return
#IfWinActive


不过,我认为最好的解决方案是使用 Jelle Geerts 编写的程序(参见他的答案)。

相关内容