Оставлять окна консоли Windows открытыми после завершения процесса - PullRequest
2 голосов
/ 31 августа 2010

Существует ли модификация уровня ОС или учетной записи пользователя для Windows 7, которую я могу использовать, чтобы оставить окно консоли завершенных процессов открытым?

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

Однако, когда вы запускаете программу из Visual Studio (без отладки), Visual Studio удается запустить программу и оставить окно консоли открытым после завершения процесса - такое поведение удобно! К сожалению, я не могу запустить все процессы из Visual Studio.

Итак, есть ли способ запустить все программы или хотя бы некоторые программы, чтобы их консольное окно оставалось открытым до тех пор, пока я не закрою его, а не до завершения процесса? Я мечтаю о каком-нибудь действительно простом инструменте (или настройке реестра), чтобы сделать окна немного более подходящими для простых задач разработки.

Два конкретных случая: запуск свеже скомпилированных программ из командного файла (по сути, простой модульный тест) и запуск программ через проводник или другое внешнее приложение (т. Е. Без возможности передачи параметров).

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

В частности: Я всегда могу перенаправить вывод в файл журнала, поэтому я ищу что-то более простое, чем это; т.е. не требует ведения имен файлов и управления файлами. То, что вы могли бы использовать без хлопот несколько раз в минуту и ​​с несколькими параллельными процессами. Приостановка в конце выполнения - это обходной путь, который требует изменения кода и прерывает другие вызывающие процессы этого процесса (поскольку процесс никогда не завершается), поэтому он вряд ли лучше, чем лог-файлы, и не всегда может использоваться.

Ответы [ 3 ]

4 голосов
/ 31 августа 2010

Вместо запуска вашей программы, почему бы не выполнить ее с помощью команды оболочки, такой как cmd.exe / K, это должно сохранить консоль, вокруг которой работала ваша программа. Это должно работать во всех случаях, независимо от того, как построена программа.

1 голос
/ 31 августа 2010

Можно ли просто добавить Console.Read(); в конце программы?Он будет держать окно консоли вверх и будет закрываться при нажатии любой клавиши.

0 голосов
/ 01 сентября 2010

Для использования проводника вы можете добавить команду «Run & Wait» в контекстное меню проводников.Это не требует программирования.На этой странице объясняется, как сделать это в целом:

http://www.petri.co.il/add_command_prompt_here_shortcut_to_windows_explorer.htm

Если вы запускаете свои тесты из пакетного файла, почему бы вам просто не добавить оператор pause в конце?Это, конечно, не сработает, если вы начнете тесты из проводника.

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