Можно ли сделать Ctrl+C таким же отзывчивым, как Ctrl+Break в консоли Windows 7?
Можно ли заставить Ctrl+C действовать как Ctrl+Break в Windows 7 cmd.exe
приставка?
По умолчанию кажется, что Ctrl+C отправляет сигнал только при следующем чтении входного буфера, где Ctrl+Break немедленно отправляет сигнал.
Это делает Ctrl+C бесполезным для завершения процессов, потому что, когда я хочу завершить процесс, я хочу немедленно завершить его.
Я сейчас использую Ctrl+Break, но набрать его гораздо сложнее.
Похоже, в DOS вы можете добавить BREAK=ON
в CONFIG.SYS
добиться этого, но не в Windows 7?
1 ответ
There's no setting that I know of, but you can accomplish this with an AutoHotkey script.
Сценарий
^c::
WinGetClass, WinClass, A
if(WinClass = "ConsoleWindowClass")
SendPlay ^{CtrlBreak}
else
SendPlay ^c
Как это устроено
^c
specifies the key combination to modify: Ctrl + C (^
indicates Ctrl).WinGetClass, WinClass, A
stores the active window's title in the variableWinClass
,if(WinClass = "ConsoleWindowClass") ... else ...
проверяет, еслиWinClass
macthes the stringConsoleWindowClass
(the window class of the Windows 7 command prompt).Если это так,
SendPlay ^{CtrlBreak}
simulates the key combination Ctrl + Break.Иначе,
SendPlay ^c
simulates the key combination Ctrl + C.This way, other programs still behave as they should.
Как пользоваться
Загрузите и установите последнюю версию AutoHotkey.
Сохраните приведенный выше скрипт как
break-on.ahk
, используя ваш любимый текстовый редактор.Дважды щелкните файл, чтобы запустить скрипт.
Если вы хотите, скопируйте скрипт (или ссылку на него) в
Startup
папка.