Как перенести консольное приложение в windows forms c

Обновлено: 04.07.2024

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

У меня есть это:

но я хочу проверить, установлен ли флажок из окна, вместо того, чтобы установить его как true:

в Windows Form флажок называется CheckOnOrOff, и он проверяется.

спросил(а) 2016-12-19T06:40:00+03:00 4 года, 11 месяцев назад

Я предполагаю, что пользователь может изменить настройки, пока консольное приложение запущено, и эффект следует предпринять немедленно. Добавление вашего winforms-приложения в качестве ссылки в консоли не поможет, так как это будет другое приложение. Вот что я предлагаю:

Создайте новое приложение winforms и измените тип вывода из "Приложения Windows" на "Консольное приложение", чтобы мы могли видеть консоль. Перенесите свой консольный логический процесс в проект winforms

Добавьте новый статический класс, который будет удерживать флаг между winforms и консолью. Пример:

Добавьте флажок в свою форму Windows и добавьте следующий код к флажку измененного события:

Добавьте кнопку, чтобы запустить консольный процесс, и используйте поток, чтобы запустить консольный процесс следующим образом:

Это класс ConsoleProcess, который поддерживает вашу консольную логику

Если вы хотите, чтобы форма, сведенная к системному лову, была минимизирована, чтобы свернуть приложение к системному лотку

ответил(а) 2016-12-19T09:22:00+03:00 4 года, 11 месяцев назад

Вы можете вводить данные из формы Windows (через User), а затем передавать ее в приложение Console с помощью параметра parameter в Console Application.

Параметром метода Main является массив String, который представляет аргументы командной строки

Итак, если у меня была консольная программа (MyCApp.exe), например:

Это я начал в командной строке следующим образом:

MyCApp.exe Arg1 Arg2 Arg3 Основному методу будет передан массив, содержащий три строки: "Arg1", "Arg2", "Arg3".

Если вам нужно передать аргумент, содержащий пробел, то оберните его в кавычки. Например:

MyCApp.exe "Arg 1" "Arg 2" "Arg 3" Аргументы командной строки обычно используются, когда вам нужно передавать информацию в ваше приложение во время выполнения. Например, если вы пишете программу, которая передает основную информацию для копирования файла из одного места в другое, вы, вероятно, передадите два местоположения в качестве аргументов командной строки. Например:

Здесь 'C:\file1.txt' является первым аргументом, 'C:\file2.txt' является первым аргументом, 'Copyit' является третьим аргументом

Репутация: нет
Всего: нет

в одном проекте есть приложение windows forms и консольное приложение. как из одного вызвать другое? например по нажатию клавиши или какой либо кнопки? подскажите. и как можно передать данные из консольного приложения в windows forms? спасибо

Репутация: нет
Всего: 3

Unforgiven, чередовать можно через файл или через память выбор за вами.

Репутация: нет
Всего: нет

WaReZMEN,
А можно подробнее о каждом из способов? Если можно с примерами, ибо я пока еще новичок в этом деле

Репутация: нет
Всего: 3

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

Репутация: 18
Всего: 67

Unforgiven, WaReZMEN, достаточно будет поставить референс из консольного приложения в проект WinForms. никаких танцев с файлами/памятью. всё гораздо проще

Unforgiven, правой кнопкой на проекте консольного приложения, затем выбираете пункт Add reference. В открывшемсе окне с вкладки Projects выбираете проект WinForms. ну и дальше можете дёргать в консольном что угодно из проекта WinForms

Репутация: нет
Всего: нет

..а как перейти из Форм в консольное по нажатию клавиши или определенного сочетания? если можно конкретными командами и примерами

Добавлено через 1 минуту и 17 секунд
А как перейти из Форм в консольное по нажатию клавишь или их сочетания? если можно конкретными командами и примерами

Репутация: 18
Всего: 67

Unforgiven, что значит "перейти из форм в консольное".

Репутация: нет
Всего: нет

в одном проекте есть виндоус формс и консольное приложение. как перейти из одного в другое. или какая есть команда чтобы открыть какой либо exe файл? как вызвать его?

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

[ Время генерации скрипта: 0.1298 ] [ Использовано запросов: 21 ] [ GZIP включён ]

В процедурах ниже описаны основные шаги, которые необходимо выполнить для создания и запуска приложения Windows Forms из командной строки. Visual Studio предлагает расширенную поддержку этих процедур. см. также раздел пошаговое руководство. размещение элемента управления Windows Forms в WPF.

Процедура

Создание формы

В пустом файле кода введите следующую Imports using инструкцию или:

Объявите класс с именем Form1 , наследуемый от класса Form:

Создайте конструктор без параметров для Form1 .

В следующий процедуре будет добавлен дополнительный код конструктора.

Добавьте в класс метод Main .

Вызовите EnableVisualStyles , чтобы применить стили операционной системы к приложению.

Создайте экземпляр формы и запустите его.

Компиляция и запуск приложения

при использовании Visual Basic введите: vbc form1.vb

В командной строке введите следующий текст: Form1.exe .

Добавление элемента управления и обработка события

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

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

Объявление элемента управления типа "Кнопка" и обработка событий щелчка мышью для нее

Объявите элемент управления типа "Кнопка" с именем button1 .

В конструкторе создайте кнопку и задайте ее свойства Size, Location и Text.

Добавьте кнопку в форму.

В следующем примере кода показано, как объявить элемент управления Button:

Создайте метод для обработки события Click для кнопки.

В следующем примере кода показано, как обрабатывается событие Click элемента управления Button:

Свяжите событие Click с созданным методом.

В примере кода ниже показано, как связать событие с методом.

Скомпилируйте и запустите приложение, как описано в предыдущей процедуре.

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

Я хочу добавить приложение Windows Form, чтобы просто получать вводимые пользователем данные и отправлять их в консольное приложение для использования. Я искал и не нашел то, что ищу

У меня есть это:

Но я хочу проверить, установлен ли флажок в форме Windows, вместо того, чтобы устанавливать для него значение true следующим образом:

В Windows Form этот флажок называется CheckOnOrOff, и он отмечен.

3 ответа

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

Создайте новое приложение winforms и измените тип вывода с «Windows Application» на «Console Application», чтобы мы могли видеть консоль. Перенесите логический процесс консоли в проект winforms

Добавьте новый статический класс, который будет удерживать флаг между winforms и console. Пример:

  1. Добавьте флажок в форме Windows Form и добавьте код ниже к событию изменения флажка:
  1. Добавьте кнопку для запуска консольного процесса и используйте поток для запуска консольного процесса, как показано ниже:
  1. Это класс ConsoleProcess, который содержит логику вашей консоли.

Если вы хотите, чтобы форма была свернута в область уведомлений, см. свернуть приложение в области уведомлений

Вы можете получить ввод из формы Windows (пользователем), а затем передать его в консольное приложение, используя аргумент параметра в консольном приложении.

Параметр метода Main - это массив String, представляющий аргументы командной строки.

Итак, если бы у меня была консольная программа (MyCApp.exe) вот так:

Это я начал в командной строке так:

MyCApp.exe Arg1 Arg2 Arg3 В метод Main будет передан массив, содержащий три строки: «Arg1», «Arg2», «Arg3».

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

MyCApp.exe "Arg 1" "Arg 2" "Arg 3" Аргументы командной строки обычно используются, когда вам нужно передать информацию вашему приложению во время выполнения. Например, если вы пишете программу, которая передает основную информацию для копирования файла из одного места в другое, вы, вероятно, передадите два места в качестве аргументов командной строки. Например:

Здесь C: \ file1.txt - первый аргумент, C: \ file2.txt - первый аргумент, Copyit - третий аргумент.

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

Читайте также: