Отвечая на приглашение cmd программно в C # - PullRequest
1 голос
/ 19 мая 2011

Привет всем, что я застрял, пытаясь отправить команды в командную строку, ожидающую моего ввода.

Рассматриваемая команда - JavaLoader, который, если я пытаюсь использовать на устройстве BlackBerry с паролемон запрашивает у меня пароль.Я хотел бы ввести пароль, но с использованием кода C #.

Предполагая, что я успешно создал cmd.exe, используя такой процесс: -

process = new Process();

                // Invokes the cmd process specifying the command to be executed.
                string cmdProcess = string.Format(System.Globalization.CultureInfo.InvariantCulture, @"{0}\cmd.exe", new object[] { Environment.SystemDirectory });

                // Pass executing file to cmd (Windows command interpreter) as a arguments
                //Removed /C tells cmd that we want it to execute the command that follows, and then exit.
                string cmdArguments = string.Format(System.Globalization.CultureInfo.InvariantCulture, "{0}", new object[] { command });

                // Pass any command line parameters for execution
                if (arguments != null && arguments.Length > 0)
                {
                    cmdArguments += string.Format(System.Globalization.CultureInfo.InvariantCulture, " {0}", new object[] { arguments, System.Globalization.CultureInfo.InvariantCulture });
                }

                process.StartInfo.FileName = cmdProcess;
                process.StartInfo.Arguments = cmdArguments;
                process.StartInfo.CreateNoWindow = true;
                process.StartInfo.UseShellExecute = false;  // Must be false for redirection
                process.StartInfo.RedirectStandardOutput = true;
                process.StartInfo.RedirectStandardError = true;
                process.StartInfo.RedirectStandardInput = true;

                bool s = process.Start();

Как мне поступитьотвечая на запрос cmd для паролей?

Я пытался получить поток ввода и использовать .WriteLine ("randompassword") примерно так: -

while (process.Responding)
{
   sw.WriteLine(response);
}

Еще одна вещь, которую я заметил, это приглашение на ввод пароля небудет выбрано как Выход или Ошибка, и приложение будет зависать, потому что оно ожидает моего ввода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...