powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Может ли быть Консольным или WinForm в зависимости от параметра?
25 сообщений из 62, страница 1 из 3
Может ли быть Консольным или WinForm в зависимости от параметра?
    #39813263
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пока программно тему не копал.
Есть идея утилитки.
Смысл, чтоб она могла запускаться и в режиме консоли, и в режиме "НЕ консоли", в зависимости от параметра командной строки.

Консоль нужна например если
1) делать туда вывод событий
2) если запуск в режиме bat-файла, то он будет ждать завершения и только потом переходить к след. команде

Консоль НЕ нужна например если
1) вывод в нее не нужен
2) черное ее окно на экран не нужно
и т.д.

О GUI типа формы на экран речь не идет, форму можно вызвать из main() и для консольного приложения, речь не об этом.

Грубо, хочу так (в свойствах проекта предположительно "Приложение Win Form + Sub Main")
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
Sub main()
   If InStr(Command, "/Console") Then
      'Поведение эквивалентное типу "Консольное приложение" в свойствах проекта
      'запускаем консоль, делаем действия выводим в консоль... (!!! bat-файл будет ждать завершения)
    Else
      'НЕ запускаем консоль, делаем действия (!!! bat-файл ждать НЕ будет)
    End If
End Sub



МОЖНО или НЕ МОЖНО?

2 проекта не хочу, там очень много всего а логика одинаковая (что с консолью, что без), сложно будет потом "параллельно поддерживать".
...
Рейтинг: 0 / 0
Может ли быть Консольным или WinForm в зависимости от параметра?
    #39813272
Фотография buser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий77, Create page allocconsole (kernel32) ? может сработает
...
Рейтинг: 0 / 0
Может ли быть Консольным или WinForm в зависимости от параметра?
    #39813283
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Краткий ответ - нет (если не использовать нативный Win API, про который выше упоминали). А зачем это надо? Нельзя ли просто отделить функционал от UI и сделать к нему две разные морды - одну консольную, а другую GUI?
...
Рейтинг: 0 / 0
Может ли быть Консольным или WinForm в зависимости от параметра?
    #39813294
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buserДмитрий77, Create page allocconsole (kernel32) ? может сработаетон же сказал что о ГУИ и формах речи не идет.
Я сам теряюсь что ему нужно)
...
Рейтинг: 0 / 0
Может ли быть Консольным или WinForm в зависимости от параметра?
    #39813295
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий77Консоль НЕ нужна например если
1) вывод в нее не нужен
2) черное ее окно на экран не нужно
и т.д.
Ты опиши что нужно мил человек.
А то выражение: "мне нужен НЕ ХЛЕБ" очень широко трактуется)
...
Рейтинг: 0 / 0
Может ли быть Консольным или WinForm в зависимости от параметра?
    #39813297
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий772 проекта не хочу, там очень много всего а логика одинаковая (что с консолью, что без), сложно будет потом "параллельно поддерживать".вот и не мудри.
Не может быть два проекта одинаковых чтобы их запускать по ключику консоль/не консоль.
Забудь. Тут даже постановка не катит.
...
Рейтинг: 0 / 0
Может ли быть Консольным или WinForm в зависимости от параметра?
    #39813298
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthatКраткий ответ - нет (если не использовать нативный Win API, про который выше упоминали).
м-м-м
счас глянул свои старые VB6 коды, именно так и было сделано одно из приложений
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
  str_Command = Command
  the_ConsoleMode = IIf(HasOptionFromStr(str_Command, "NoConsole"), False, True)
  If the_ConsoleMode Then
    'создаём консоль
    AllocConsole
    'получаем дескрипторы ввода и вывода
    hOutput = GetStdHandle(STD_OUTPUT_HANDLE)
    hInput = GetStdHandle(STD_INPUT_HANDLE)
  End If


А когда переписывал на .Net от API отказался в пользу "Консольное приложение".
И вилку эту убил.
Видимо придется реанимировать.
...
Рейтинг: 0 / 0
Может ли быть Консольным или WinForm в зависимости от параметра?
    #39813299
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий77,
Именно бейсик и именно старые подходы. Денег за это счас не платят.
...
Рейтинг: 0 / 0
Может ли быть Консольным или WinForm в зависимости от параметра?
    #39813320
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий77,

Тут проблема в том, что у тебя, очень похоже, изначально через джоппу сделано. А именно логика перемешана с UI. Если бы это было разделено, хотя бы логически в пределах одного приложения, то логику легко было бы вынести в отдельную сборку и использовать в двух разных аппликухах с разными UI (GUI и CLI). Ты, вот, через неделю еще и веб-интерфейс захочешь - и что, еще и веб-сервер станешь встраивать в свое приложение вместе с GUI и консолью? Начни лучше с рефакторинга того, что есть.
...
Рейтинг: 0 / 0
Может ли быть Консольным или WinForm в зависимости от параметра?
    #39813321
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий77,

Не может. Флаг отвечающий за это находится в PE заголовке

AllocConsole применить можно, но могут быть проблемы с перенаправлением ввода-вывода

Чистый вариант - приложение делать консольным, если требуют флаги - создавать новый процесс и завершать текущий (естественно два exe потребуется, но это не страшно, основной код в dll должен располагаться
Второму exe можно изменить расширениие, .bin например.)

Недостатки - консольное окно на короткое время будет показываться и id процесса изменится

PS. бейсик и подходы ни причём
...
Рейтинг: 0 / 0
Может ли быть Консольным или WinForm в зависимости от параметра?
    #39813326
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилбейсик и подходы ни причёмда. Переборщил с целью, чтобы автор отказался от этой идеи. Она тут вроде уже второй раз за пару лет проскакивает.
...
Рейтинг: 0 / 0
Может ли быть Консольным или WinForm в зависимости от параметра?
    #39813329
dvim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthat А именно логика перемешана с UI.
Пост автора не о этом...
А о том что он хочет возможность делать невидимую консоль

Автору: Есть немало советов и примеров на тему того, как скрыватть консольное окно через winApi
...
Рейтинг: 0 / 0
Может ли быть Консольным или WinForm в зависимости от параметра?
    #39813348
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dvimневидимую консольвот расскажи. Я правда не видел. Что то схожее с винсервисом?
...
Рейтинг: 0 / 0
Может ли быть Консольным или WinForm в зависимости от параметра?
    #39813365
dvim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,
Скорее он хочет, чтобы программа отрабатывала, ничего не показывая на экране.
Все таки винсервис - он не совсем для этого.
...
Рейтинг: 0 / 0
Может ли быть Консольным или WinForm в зависимости от параметра?
    #39813367
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dvim,
Экран в консоли не программы а винды. Пусть не выводит туда ничего.
Что за блажь такая?
Некоторые ведь запрещают копировать текст мышкой в браузере.
Вы считаете это правильно?
...
Рейтинг: 0 / 0
Может ли быть Консольным или WinForm в зависимости от параметра?
    #39813370
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dvimА о том что он хочет возможность делать невидимую консоль


ОМГ. Зачем может быть нужна невидимая консоль??? Давайте тогда уж сразу сделаем невидимое приложение Если для логирования, то разумнее просто сделать логирование в файл или куда-нибудь еще.
...
Рейтинг: 0 / 0
Может ли быть Консольным или WinForm в зависимости от параметра?
    #39813380
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123dvimневидимую консольвот расскажи. Я правда не видел. Что то схожее с винсервисом?не

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

PS
При сокрытии консольного окна нужно убедиться, что у него нет родителя
...
Рейтинг: 0 / 0
Может ли быть Консольным или WinForm в зависимости от параметра?
    #39813383
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилЕсли консольное приложение создает окно,а зачем?
...
Рейтинг: 0 / 0
Может ли быть Консольным или WinForm в зависимости от параметра?
    #39813386
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил,
Я понимаю так, что консольное выводит в выходной поток.
...
Рейтинг: 0 / 0
Может ли быть Консольным или WinForm в зависимости от параметра?
    #39813390
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthatЗачем может быть нужна невидимая консоль???
Чтоб GUI рисовать отдельно
...
Рейтинг: 0 / 0
Может ли быть Консольным или WinForm в зависимости от параметра?
    #39813392
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилfkthatЗачем может быть нужна невидимая консоль???
Чтоб GUI рисовать отдельнопример то есть из гугла? Дайте.
...
Рейтинг: 0 / 0
Может ли быть Консольным или WinForm в зависимости от параметра?
    #39813394
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123ИзопропилЕсли консольное приложение создает окно,а зачем?топикстартер хочет написать универсальное приложение консоль/GUI
...
Рейтинг: 0 / 0
Может ли быть Консольным или WinForm в зависимости от параметра?
    #39813395
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилтопикстартер хочет написать универсальное приложение консоль/GUIпример которого отсутствует в гугл картинки.
Поздравляю.
Он запретил мышкой копировать текст на своем сайте.
Удачи ему.
...
Рейтинг: 0 / 0
Может ли быть Консольным или WinForm в зависимости от параметра?
    #39813396
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
уже обсуждали эту тему и не 1 раз в этом разделе
https://www.sql.ru/forum/1305732/konsolnoe-prilozhenie-nuzhen-sovet?hl=console winforms
...
Рейтинг: 0 / 0
Может ли быть Консольным или WinForm в зависимости от параметра?
    #39813399
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Mejtes,
Да. Точно. Было)
Раз в год.
Я кстати из винФормс подавляю окно консоли runSql.exe.
Но это совсем другое дело.
...
Рейтинг: 0 / 0
25 сообщений из 62, страница 1 из 3
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Может ли быть Консольным или WinForm в зависимости от параметра?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]