Как запустить консольное приложение C# со скрытой консолью

Я бы предложил использовать расширение qaf TestNG , которое отвечает за управление драйверами, управление ресурсами и многое другое для автоматизации функциональных тестов веб, мобильных и веб-сервисов. С qaf ваш тестовый класс может выглядеть следующим образом:

 public class NewTest extends WebDriverTestCase{
  @Test()
  public void method1() {
      getDriver().get("https://www.google.com");
      getDriver().findElement(By.name("q")).sendKeys("parallel");
      getDriver().findElement(By.name("q")).sendKeys(Keys.ENTER);
  }

  @Test()
  public void method2() {
      getDriver().get("https://www.google.com");
      //another improved way
      WebElement ele = getDriver().findElement(By.name("q"));
      ele.sendKeys("methods");  
      ele.sendKeys.submit();

  }

  @Test()
  public void method3() {
      getDriver().get("https://www.google.com");
      //another way with qaf
      WebElement ele = $("name=q");
      ele.sendKeys("testng");  
      ele.sendKeys.submit();
  }
}

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

135
задан Peter Mortensen 14 March 2017 в 07:46
поделиться

6 ответов

Если вы используете класс ProcessStartInfo , вы можете установить стиль окна как скрытый - в случае консольных (не GUI) приложений вы должны установить CreateNoWindow на true :

System.Diagnostics.ProcessStartInfo start =
      new System.Diagnostics.ProcessStartInfo();
start.FileName = dir + @"\Myprocesstostart.exe";
start.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; //Hides GUI
start.CreateNoWindow = true; //Hides console
151
ответ дан 23 November 2019 в 23:41
поделиться

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

Создайте новое консольное приложение, а затем измените тип «Тип вывода» на «Приложение Windows» (сделано в свойства проекта)

190
ответ дан 23 November 2019 в 23:41
поделиться

Если вы создаете программу, не требующую ввода данных пользователем, вы всегда можете просто создать ее как сервис. Сервис не будет отображать никакой интерфейс.

4
ответ дан 23 November 2019 в 23:41
поделиться

Если вы используете класс процесса, вы можете написать

yourprocess.StartInfo.UseShellExecute = false;
yourprocess.StartInfo.CreateNoWindow = true;

перед yourprocess.start (); , и процесс будет скрыт

67
ответ дан 23 November 2019 в 23:41
поделиться

Вы можете использовать FreeConsole API, чтобы отключить консоль от процесса:

[DllImport("kernel32.dll")]
static extern bool FreeConsole();

(конечно, это применимо, только если у вас есть доступ к исходному коду консольного приложения)

20
ответ дан 23 November 2019 в 23:41
поделиться

Я знаю, что отвечаю не совсем то, что вы хотите, но мне интересно, правильный ли вы вопрос задаете.

Почему не отвечаете? Если вы не используете:

  1. службу Windows
  2. создайте новый поток и запустите свой процесс на нем

Это звучит лучше, если все, что вам нужно, это запустить процесс.

1
ответ дан 23 November 2019 в 23:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: