Ниже приведены некоторые хорошие продукты для замены консоли, более удобные для пользователя, чем cmd.
Как указано ниже, начиная с Windows 7, все эти оболочки являются просто интерфейсом для conhost.exe, даже powershell. Для получения дополнительной информации прочитайте, что такое conhost.exe и почему он работает.
Поэтому приведенные ниже консоли заменяют визуальный интерфейс по умолчанию только на conhost, представленный cmd, и полезны только при непосредственном вызове в качестве программ.
Они не могут быть вызваны косвенно, например, когда запускается исполняемый консоль, такой как diskpart, так как это вызовет conhost, а conhost имеет свой собственный интерфейс ввода-вывода и API.
Вот что говорит Microsoft в Windows 7 / Windows Server 2008 R2: Консольный хост :
ConHost представляет собой постоянное изменение в способе обработки ввода-вывода консольного приложения. Отсутствует раздел реестра или параметр групповой политики, которые могут заставить Windows вернуться к поведению консоли в «устаревшем режиме».
Вывод таков: если вы хотите заменить консоль более глубоким способом, чем замена интерфейса cmd, то это невозможно. Microsoft выбрала этот дизайн в качестве меры безопасности и не вернется.
Единственный способ, которым я могу придумать, чтобы изменить поведение conhost, - это установить глобальную системную хук на API conhost. Я вообще не знаю, возможно ли это, и никто до сих пор этого не делал (или, если они сделали, они не говорят).
Я также не верю, что Microsoft позволит вам заменить такой критически важный системный файл, как conhost.exe, взломанной версией.
Если требуется замена cmd, который находится в system32\cmd.exe, нужно взять файл в собственность, а затем переименовать его (cmd1.exe?), Переименовать exe-файл для замены консоли в cmd.exe и скопировать в system32 вместе с все файлы, необходимые для работы. Это может вызвать проблемы, если консоль замены не поддерживает все параметры, которые поддерживает cmd.
Другой подход, который работает с файлами .bat, - связать с ними новую консоль. Для этого нужно отредактировать ключ реестра HKEY_CLASSES_ROOT\batfile\shell\open\command
. Смотрите эту статью для некоторых деталей.
Вот список консолей:
ColorConsole
FireCMD
PowerCmd
gs.exe
PyCmd