2013-10-26 4 views
0

Я пытаюсь разработать приложение C# для установки apk на Android-телефон с оболочкой adb, но я начинаю для обоих. Я не могу отправить команду на cmd.как отправить команду в cmd с C#

void getDevices() 
    { 
     Process p = new Process(); 
     ProcessStartInfo startInfo = new ProcessStartInfo(@"cmd.exe"); 

     p = Process.Start(startInfo); 

     p.StandardInput.WriteLine(@"cd " + @"C:\Users\user\Desktop\adb\"); 
     // String output = p.StandardOutput.ReadToEnd(); 





    } 

ответ

1

Есть три варианта:

  1. Pass команды в cmd.exe при запуске он
  2. Отправить команды для cmd.exe после того, как начал
  3. Запись командного файла или PowerShell скрипт

Передача запятой НСР в cmd.exe, когда вы начинаете его

Для передачи команд cmd.exe вы можете использовать -k или -c параметры cmd.exe.

Например, это начнет cmd.exe, отображать зарегистрированный пользователь, а затем завершить процесс cmd.exe:

cmd.exe /c "whoami" 

Посмотрите на this page или Google для большего количества примеров.

Отправить команды для cmd.exe после того, как начал

Альтернативой является первым начать cmd.exe, а затем отправлять команды на него. Об этом уже довольно много, но обычно есть два подхода:

  1. Отправлять по одному ключу за раз, например. How can I send keypresses to a running process object?
  2. Отправлять данные во входной буфер процесса, например. .NET: Inject Data into Input-Buffer of Process

Я не уверен, что они будут работать с cmd.exe.

Написание пакетный файл или сценарий PowerShell

Более общий подход к автоматизации cmd.exe, чтобы написать командный файл или сценарий PowerShell. Вы также можете рассмотреть эти варианты.

+0

Ваша ссылка для «Отправить данные во входной буфер процесса» имеет решение Visual Basic. Что-нибудь в C#? –

+0

Если вам сложно преобразовать код вручную, google для инструмента преобразования VB.NET в C#. –

+0

А, так что вы тоже не отвечаете на мой вопрос. –

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