开发者

Leaving Windows Console windows open after process termination

Is there an OS or user-account level modification for windows 7 that I can use to leave the console window of terminated processes open?

Background: I like to use console programs for simple tests. These things tend to need debugging and analysis, and the easiest way to do that is to use printf or equivalent - that's available in pretty much any language. Unfortunately, when a console program terminates, the window containing the text buffer exits - and I lose that simple feedback.

When you start a program from within Visual Studio (without debugging), however, Visual studio manages to start the program and leaves the console window open after the process terminates - that behavior is handy! Unfortunately, I can't start all processes from visual studio.

So, is there a way to start all programs or at least some programs such that their console window remains open until I close it rather than until the process exits? I'm dreaming of some really simple tool (or registry setting) to make windows a bit more suitable for simple development tasks.

Two specific cases: starting freshly compiled programs from a batch file (a simple unit test, essentially), and starting programs via explorer or some other external app (i.e. without being able to pass parameters).

Further Requirements: Ideally, any solution should work regardless of the console program started; in particular it should not depend on the language or runtime of the program, and it should not require changes to programs started or as few a开发者_JAVA技巧s possible.

In particular: I can always redirect output to a logfile, so I'm looking for something that's simpler than that; i.e. does not require maintaining filenames and managing files. Something you could use without hassle several times a minute and with multiple parallel processes. Pausing at the end of execution is a workaround that requires a code change and will break other callers of that process (since the process never terminates), so it's hardly better than logfiles and not always usable.


Instead of running your program, why not execute it via a shell command like cmd.exe /K this should keep the console that your program ran around. This should work in all cases regardless of how the program is built.


Is it possible for you to just add Console.Read(); at the end of the program? It will keep Console window up, and will close when you press any key.


For using explorer you can add a command "Run & Wait" to the explorers context menu. It doesn't require programming. This page explains how to do this in general:

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

If you run your tests from a batch file, why don't you just add a pause statement at the end? This of course wont work if you start the tests from explorer.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜