Терминал Windows - Форма Windows для встраивания cmd

2

Я ищу способ встроить CMD-оболочку в форму. Я хочу создать приложение на основе С#, которое действует как терминал, лучше, чем окно Powershell (без вкладок) или cmd (ничего не происходит). Просто запустите эти интерпретаторы в бэкэнд.

Думаю, MS никогда не думала об этом. Любые идеи, что из элементов, которые я мог бы использовать?

Спасибо, i/o

Теги:
winforms
terminal

3 ответа

2
Лучший ответ

Это не тривиальная задача, которую вы предпринимаете. Я знаю один проект (Console2), который в основном опросит экранный буфер основного окна консоли и отображает его самостоятельно. Вам, конечно, не удастся справиться с интерактивными приложениями, такими как Far и тому подобное, поскольку они (a) полагаются на получение событий на клавиатуре и (б) на управление своим экранным буфером. Оба являются неприятными вещами, если вы хотите создать подходящую оболочку вокруг функциональности окна консоли. Также возможен ввод мыши (если не включен режим быстрого редактирования), что может дать вам дополнительные головные боли.

Я сомневаюсь, что вы можете использовать готовый элемент управления для этого. В основном вам нужно отображать сетку ячеек, каждая из которых имеет цвет переднего плана и фона. Вы могли бы использовать RichTextBox для этого, но я думаю, это далеко не идеально.

И я не думаю, что никто в MS никогда не думал об этом. Это просто ограниченный бюджет для новых функций, и каждый из них должен быть определен, реализован, протестирован, протестирован больше для регрессий с миллионами приложений там и т.д. Это просто лишняя дорогостоящая вещь (если вы не хотите чтобы неправильно использовать своих клиентов в качестве тестеров, которых они не являются).

0

Было бы проще всего расширить класс Textbox и добавить логику, чтобы она вела себя как консоль (отвечайте на события KeyPressed/KeyUp/KeyDown или аналогичные). Вы также можете добавлять события для тех вещей, на которые должна реагировать ваша консоль. Например, добавьте событие CommandEntered.

Основываясь на новой консоли в TextBox, вы можете бесплатно редактировать функции отображения и отображения текстового поля, поэтому вам не нужно повторно реализовывать это.

0

Вы можете использовать поле richtext и установить фон на черный и передний план на белый. RTB вместо текстового поля для обработки больших объемов данных. Вам пришлось бы написать очень много кода, чтобы имитировать терминал.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню