Создайте консольное приложение win C # для отображения команды posibile, когда пользователь нажимает TAB - PullRequest
3 голосов
/ 30 ноября 2009

Я занимаюсь разработкой консольного приложения на C # с большим количеством параметров, и иногда я как разработчик не могу вспомнить комбинацию параметров для правильного вызова приложения, я даже не могу думать и думать, как пользователи будут это делать. Поэтому я спрашиваю Вас, существует ли и какой будет правильный (схоластический) способ заставить мое приложение работать так же, как эти ОС UNIX. Вы знаете, что я пытаюсь сделать, это когда пользователь вызывает приложение и после этого, когда нажимает TAB, затем получает список возможных команд, после выбора одной из команд снова нажимает на вкладку и получает референтный список параметров и других команд.

Ответы [ 3 ]

3 голосов
/ 30 ноября 2009

Я думаю, что самый простой способ сделать это - использовать метод Console.ReadKey . Это позволит вам получить клавишу табуляции, как только она нажата пользователем. Затем вы можете обработать это нажатие клавиши, и если это вкладка, определите текущий контекст и распечатайте соответствующие команды.

2 голосов
/ 30 ноября 2009

Разработайте ваше приложение как PowerShell CmdLet . В Powershell уже есть встроенная инфраструктура завершения табуляции. Например, если вы делаете следующее для dm CmdLet:

dir - Tab

, а затем повторное нажатие Tab будет циклически переключаться между возможными опциями для команды dir:

  • dir -Path
  • dir -LiteralPath
  • dir -Filter
  • dir -Включить

Etcetera.

0 голосов
/ 30 ноября 2009

Если я правильно понимаю, вы хотите имитировать программируемое завершение командной строки в zsh (Z shell).

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

Если вы работаете с zsh в Windows, что должно быть возможно с Cygwin, вы можете запрограммировать его для завершения командной строки.

В противном случае, я думаю, что ваш единственный вариант - запустить своего рода интерактивный сеанс после запуска программы; например, распечатать все параметры при запуске программы и подождать, пока пользователь введет один из параметров, а затем показать все следующие возможные комбинации параметров.

...