|
Может ли быть Консольным или WinForm в зависимости от параметра?
|
|||
---|---|---|---|
#18+
Petro123Изопропил, Я понимаю так, что консольное выводит в выходной поток. Есть ещё Console API ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2019, 10:45 |
|
Может ли быть Консольным или WinForm в зависимости от параметра?
|
|||
---|---|---|---|
#18+
Изопропил, Ну через него наверно из гуи и скрывают окно с забором ответов к себе. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2019, 10:49 |
|
Может ли быть Консольным или WinForm в зависимости от параметра?
|
|||
---|---|---|---|
#18+
Petro123, Ты о псевдоконсоли? В любом случае в ветке winforms это оффтоп ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2019, 11:12 |
|
Может ли быть Консольным или WinForm в зависимости от параметра?
|
|||
---|---|---|---|
#18+
Дмитрий772 проекта не хочу, там очень много всего а логика одинаковая (что с консолью, что без), сложно будет потом "параллельно поддерживать". Так можно сделать, придется повозиться с разделением, если еще не сделано. Я не так давно делал аналогичную фигню, т.е. добавлял к уже работающему винформс приложению - возможность быть запущенным как консольное с командной строкой, в бат файле и т.д. Например, у меня торчали MessageBox на эксцепциях на каждом шагу, пришлось сделать в лог файл, если запущено в консольном режиме и тд. Тут даже тема была, кстати ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2019, 11:18 |
|
Может ли быть Консольным или WinForm в зависимости от параметра?
|
|||
---|---|---|---|
#18+
Ролг Хупин, Ну, по всему приложению считай нужно писать в каком режиме оно работает. ЧудоЮдоРыбаКит. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2019, 11:23 |
|
Может ли быть Консольным или WinForm в зависимости от параметра?
|
|||
---|---|---|---|
#18+
Изопропилтопикстартер хочет написать универсальное приложение консоль/GUI Я же и предлагаю туда еще встроить веб, мобайл на ксамарине, и UWP-версию. Будет не просто универсальное, а сверхуниверсальное приложение. И главное, еще не забыть "как мне все это засунуть в один екзешник" (с) Говорю же нах автору - раздели сначала логику и UI. Пока у тебя вся логика в баттон-кликах и месседж-боксы напрямую вызывает, то ничего хорошего из такого говнокода все разно не выйдет. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2019, 11:30 |
|
Может ли быть Консольным или WinForm в зависимости от параметра?
|
|||
---|---|---|---|
#18+
Ролг ХупинНапример, у меня торчали MessageBox на эксцепциях на каждом шагу, пришлось сделать в лог файл, если запущено в консольном режиме Ужоснах В файл вывод, а не в логгер? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2019, 11:44 |
|
Может ли быть Консольным или WinForm в зависимости от параметра?
|
|||
---|---|---|---|
#18+
ИзопропилУжоснах Ну так правильно. У нас же "DI это просто очередная модная тема" (с) Никакие гайдлайны и бестпрактис нихрена не авторитеты - пока самостоятельно граблями по башке не получат, так ничему не научатся. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2019, 12:18 |
|
Может ли быть Консольным или WinForm в зависимости от параметра?
|
|||
---|---|---|---|
#18+
ИзопропилРолг ХупинНапример, у меня торчали MessageBox на эксцепциях на каждом шагу, пришлось сделать в лог файл, если запущено в консольном режиме Ужоснах В файл вывод, а не в логгер? В логгер, да, log4net ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2019, 16:00 |
|
Может ли быть Консольным или WinForm в зависимости от параметра?
|
|||
---|---|---|---|
#18+
ИзопропилНе может. Флаг отвечающий за это находится в PE заголовке Я понял ответ, спасибо. ИзопропилAllocConsole применить можно, но могут быть проблемы с перенаправлением ввода-вывода Не будет проблем. В VB6 так делал. Это нормальный вариант. Но в .Net будут некоторые непреодолимые издержки (в том числе и при "консольном" через AllocConsole запуске), вот вспомнил свой пост: Простое приложение без GUI выдает свою активность (песочные часики). Хотя в данном случае можно забить, в силу специфики кухни этих часиков там и так будет, хоть и из чисто консоли. Petro123Я сам теряюсь что ему нужно Все просто. Приложение SendFax.exe -размещает задание в MS службу факсов + [ опционально отслеживает как идет конкретно процесс отправки этого факса] Через FaxCOMEx ("часиков" на этапе создания задания по любому не избежишь) На входе куча параметров через cmd: номер, отправляемый документ, + всякие титульные страницы, Sender Info, много там всего. А "что ему нужно" зависит от хотелок юзера. Если нужно где-нибудь (в Excel-е, своей проге) щелкнуть кнопку и любоваться как идет/дошел этот самый единственный факс, то подойдет красивое GUI окошко где будет писаться Dialing-Sending page-Retrying и рисоваться свистелки, и консоль нафиг не нужна. А если например последовательная отправка по списку, то например bat-файл с переходом к след. строчке после выполнения предыдущей, и консоль самое то. Ну опционально можно отслеживать коротким выводом в консоль типа Dialing... Sending page 1 of 3 Sending page 2 of 3 … Основная сложная логика 1) Грамотная обработка входных параметров cmd - создание задания 2) Опциональная часть с отслеживанием статистики отправки этого задания Petro123Ну, по всему приложению считай нужно писать в каком режиме оно работает. И че, один параметр bConsoleMode=true/false вычисляемый сразу же. == В общем слегка конкретизировал, чего конкренто делаю. Пока логикой и GUI отслеживания событий занимаюсь, там посмотрим как сделаю с консоль/не консоль. Суть ответов по существу понял. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2019, 16:28 |
|
Может ли быть Консольным или WinForm в зависимости от параметра?
|
|||
---|---|---|---|
#18+
ИМХО пиши лог в файл, и отдельным приложением визуализация лога хоть в консоль, хоть в контрол. Виндовс умеет оповещать об изменении файла. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2019, 20:13 |
|
Может ли быть Консольным или WinForm в зависимости от параметра?
|
|||
---|---|---|---|
#18+
Dima TИМХО пиши лог в файл, и отдельным приложением визуализация лога хоть в консоль, хоть в контрол. Виндовс умеет оповещать об изменении файла. Всё намного прозаичнее :)) Код: powershell 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.05.2019, 20:30 |
|
Может ли быть Консольным или WinForm в зависимости от параметра?
|
|||
---|---|---|---|
#18+
Вот была полезная ветка https://www.sql.ru/forum/1305732/konsolnoe-prilozhenie-nuzhen-sovet?hl=console ... |
|||
:
Нравится:
Не нравится:
|
|||
16.05.2019, 08:30 |
|
Может ли быть Консольным или WinForm в зависимости от параметра?
|
|||
---|---|---|---|
#18+
Дошли руки до реализации. Фигово получается. Тупо AllocConsole() как я делал в VB6 не катит. При запуске из bat-файла или cmd оно плодит новую консоль. Катит (как сперва показалось ) вот такой вариант что даже стандартные Console.xxx работают (WinForm+Main()): Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34.
При тупо запуске мышкой все OK (AllocConsole). При вызове из bat-файла тоже все корректно (AttachConsole). НО При вызове из cmd - фигня какая-то, AttachConsole вроде срабатывает, вывод идет, но Console.ReadKey не ловится, вместо этого как бы выразиться, cmd сразу "подставляется под ввод новой команды", сам мой exe-шник закушен (пока консоль не закроешь), короче бред-мрак, не годится. Подкоректировать как то можно? Обратный вариант с "Консольное приложение" + сразу FreeConsole (если "без консоли") - ну не охота с "Мигалкой консоли". Компилировать 2 раза (2 разные имени) - можно, но как то некрасиво (ну понятно, что вообще один код можно сделать и только тип проекта менять перед компиляцией) В VB6 достаточно было либо просто AllocConsole (и оно корректно присасывалось к родительской консоли при наличии без всякого Attach), либо отсутствие AllocConsole (и оно запускалось как "неконсольное"). Че придумать то? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2019, 04:11 |
|
Может ли быть Консольным или WinForm в зависимости от параметра?
|
|||
---|---|---|---|
#18+
Дмитрий77Компилировать 2 раза (2 разные имени) - можно, но как то некрасиво (ну понятно, что вообще один код можно сделать и только тип проекта менять перед компиляцией) ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2019, 07:28 |
|
Может ли быть Консольным или WinForm в зависимости от параметра?
|
|||
---|---|---|---|
#18+
Дмитрий77Компилировать 2 раза (2 разные имени) - можно, но как то некрасиво (ну понятно, что вообще один код можно сделать и только тип проекта менять перед компиляцией)msbuild используй ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2019, 07:30 |
|
Может ли быть Консольным или WinForm в зависимости от параметра?
|
|||
---|---|---|---|
#18+
ИзопропилДмитрий77Компилировать 2 раза (2 разные имени) - можно, но как то некрасиво (ну понятно, что вообще один код можно сделать и только тип проекта менять перед компиляцией)msbuild используй некрасив сам факт, что exe-шника будет 2, а делать один из другого и ручками недолго (поменять тип проекта + м.б. один параметр в коде ConsoleMode=True/False) ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2019, 07:52 |
|
Может ли быть Консольным или WinForm в зависимости от параметра?
|
|||
---|---|---|---|
#18+
Дмитрий77, Ручками то зачем? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2019, 07:57 |
|
Может ли быть Консольным или WinForm в зависимости от параметра?
|
|||
---|---|---|---|
#18+
Дмитрий77Пока программно тему не копал. Есть идея утилитки. Смысл, чтоб она могла запускаться и в режиме консоли, и в режиме "НЕ консоли", в зависимости от параметра командной строки. . Сделать 2 exe файла. Первый в зависимости от параметров патчит ему PE Header и запускает. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2019, 08:52 |
|
Может ли быть Консольным или WinForm в зависимости от параметра?
|
|||
---|---|---|---|
#18+
Eoltпатчит ему PE Header Где такую траву берут? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2019, 09:13 |
|
Может ли быть Консольным или WinForm в зависимости от параметра?
|
|||
---|---|---|---|
#18+
Изопропил, а в чем проблема? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2019, 09:13 |
|
Может ли быть Консольным или WinForm в зависимости от параметра?
|
|||
---|---|---|---|
#18+
EoltСделать 2 exe файла. Первый в зависимости от параметров патчит ему PE Header и запускает. В гугле полно уже готовых программ для патчинга PE-хидера. А так - можно еще круче: компилировать проект в модули (-target:module), а потом батником в зависимости от через csc эти модули собирать либо в консольную аппликуху, либо в оконную. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2019, 09:32 |
|
Может ли быть Консольным или WinForm в зависимости от параметра?
|
|||
---|---|---|---|
#18+
ИМХО патчить EXE на лету плохая идея, антивирусам точно не понравится, в один прекрасный день они могут просто удалить пропатченный EXE и/или того кто патчит. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2019, 09:42 |
|
Может ли быть Консольным или WinForm в зависимости от параметра?
|
|||
---|---|---|---|
#18+
Dima TИМХО патчить EXE на лету плохая идея, антивирусам точно не понравится, в один прекрасный день они могут просто удалить пропатченный EXE и/или того кто патчит. С чего это им не понравится правка одного байта в заголовке отвечающего за тип приложения? Если же твой антивирус на такое ругается - то место ему в мусорке (как впрочем и большинству этого байтового хлама). ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2019, 09:59 |
|
Может ли быть Консольным или WinForm в зависимости от параметра?
|
|||
---|---|---|---|
#18+
[quot Eolt]Dima TЕсли же твой антивирус на такое ругается - то место ему в мусорке (как впрочем и большинству этого байтового хлама). Согласен, но попробуй это объяснить админу клиента. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2019, 10:06 |
|
|
start [/forum/topic.php?fid=20&msg=39813409&tid=1398918]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
146ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
others: | 248ms |
total: | 498ms |
0 / 0 |