2009-06-07 2 views
2

Я ищу способ встроить cmd «Shell» в форму. Я хочу создать приложение на основе C#, которое действует как терминал, лучше, чем окно Powershell (без вкладок) или cmd (ничего не происходит). Просто запустите эти интерпретаторы в бэкэнд.Windows Terminal - Windows Form для встраивания cmd

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

Спасибо, я/о

ответ

2

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

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

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

+0

[SuperUser: Как встроить PowerShell в Explorer или Explorer-подобный инструмент?] (Http://superuser.com/a/441531/139371) – Maximus

0

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

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

0

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

 Смежные вопросы

  • Нет связанных вопросов^_^