11

Есть ли способ отключить сочетание клавиш CTRL+Z (Отменить) в проводнике Windows? В качестве альтернативы, есть ли способ заставить Windows Explorer "забыть" свою историю отмен?

Причина, по которой я спрашиваю, заключается в том, что вы, возможно, выполнили некоторые файловые операции в Проводнике (копирование, переименование и т.д.), И, возможно, вы не перезагружаетесь в течение нескольких дней или дольше (вместо этого выберите режим гибернации). Проблема заключается в том, что если вы случайно нажмете CTRL+Z один или несколько раз (часто ошибочно выбирая приложение на переднем плане; использование настройки с двумя мониторами увеличит эту вероятность), вы можете отменить то, что было сделано давным-давно, не осознавая что случилось.

Даже если вы понимаете, что произошло, вы можете не помнить, какими были последние несколько операций, которые вы сделали потенциально несколько дней назад. Насколько я могу судить, в проводнике Windows нет функции "Повторить", которая вас спасла бы. Я могу представить сценарии, в которых эта ошибка может вызвать много проблем.

Если ярлык можно отключить, он по крайней мере заставит вас использовать пункт меню Edit > Undo прежде чем делать что-то глупое. В противном случае, если историю отмен можно периодически очищать, это предотвратит отмену некоторых очень старых операций.

Приложение: Для тех, кто заинтересован в реализации этого, я создал файл AHK, который запускается без вывода сообщений ( опция #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

4 ответа4

5

Я думаю, что вы можете иметь AutoHotkey переопределить существующий ярлык.

^z::
return

Заставит Ctrl + z ничего не делать

Изменить: это будет применяться везде. Чтобы применить только в проводнике, попробуйте это:

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

Я написал программу на C для отключения ярлыков Undo и Redo, так как оба могут привести к несчастным случаям.

Программу можно найти по адресу http://purl.org/net/dweundo .

Он имеет установщик, который, если хотите, добавляет ярлык в папку «Пуск» в меню «Пуск», поэтому программа запускается при входе в систему.

1

Представленные сценарии работают правильно, за исключением объектов (файлов, папок и т.д.), Размещенных на рабочем столе.
Предположим, на самом деле у вас есть папка с именем MyFolder на рабочем столе, и вы переименовываете ее в NewName . Случайное нажатие CTRL+Z приведет к потере изменений, вернувшихся к MyFolder .

Я вставляю новую версию скрипта, ловя также Desktop:

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

Спасибо, что поделились этим полезным автоключем, к сожалению, я потерял весь документ из-за глупой функции / ошибки Windows в связи со случайным сочетанием клавиш CTRL+Z :|.

0

Этот скрипт 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 (см. Его ответ).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .