日期:2014-05-17  浏览次数:20942 次

|ZYCWPF| 在我做WPF程序的时候,如何让程序运行后,还会有一个控制台程序运行显示我的Console.Write的数据呢?
有这个功能的话,在调试中和给客户运行后,他说有问题的时候,我就可以在配置文件中让这个窗口显示出来
这样容易帮找出问题
谢谢
------最佳解决方案--------------------
在项目属性中把Output type改成 Console Application就可以了。
------其他解决方案--------------------
控制台替换成richtext不一样,非要Console.Write,退一步海阔天空阿

非要就出2个程序,一个你的程序,一个控制台程序,管你什么方法建立exe之间的通信,消息发给控制台,控制台打印出来
------其他解决方案--------------------
非要 Console 么?用个 log4net 然后修改输入 log 的级别不是很好。

比如 Level=Debug 输出 Debug Log。相应的:FATAL/ERROR/WARN/DEBUG/INFO
------其他解决方案--------------------
引用:
非要 Console 么?用个 log4net 然后修改输入 log 的级别不是很好。

比如 Level=Debug 输出 Debug Log。相应的:FATAL/ERROR/WARN/DEBUG/INFO


当然,最优雅的设计就是将debug信息发布为一个selfhost的服务,然后再组合不同的debugger来具体控制输出到哪里。颇有种操作系统交叉调试的韵味,哈哈。
------其他解决方案--------------------
引用:
在项目属性中把Output type改成 Console Application就可以了。

我的是WPF程序
所以不能改为:Console Application

其实我想要的是在程序在给用户的时候,他说有问题后,我想要直观的查看到Console.Write的数据
谢谢
------其他解决方案--------------------
http://stackoverflow.com/questions/3284500/embed-a-console-window-inside-a-wpf-window
------其他解决方案--------------------
引用:
我的是WPF程序
所以不能改为:Console Application

其实我想要的是在程序在给用户的时候,他说有问题后,我想要直观的查看到Console.Write的数据
谢谢


wpf也可以改啊,就是运行时多出一个console窗口而已。
当然正规的记录日志的手段应该是用log4net之类的方式。
------其他解决方案--------------------
哈哈。。真的有,也能显示我的Console的输出!
那么如何用一个命令来显示隐藏掉这个窗口?
也就是一开始是没有的,然后我执行一个命令这个窗口就出来了
谢谢
------其他解决方案--------------------
这要用pinvoke了:

[DllImport("kernel32.dll")]
static extern IntPtr GetConsoleWindow();

[DllImport("user32.dll")]
static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);

const int SW_HIDE = 0;
const int SW_SHOW = 5;

// 显示控制台
private void btnShow_Click_1(object sender, RoutedEventArgs e)
{
var handle = GetConsoleWindow();
ShowWindow(handle, SW_SHOW);
}

// 隐藏控制台
private void btnHide_Click_1(object sender, RoutedEventArgs e)
{
var handle = GetConsoleWindow();
ShowWindow(handle, SW_HIDE);
}

------其他解决方案--------------------
控制台程序开始执行时,窗口总是显示的。
如果开始运行的时候不想显示控制台,你还是改回Windows Application,用4楼的方法吧。
------其他解决方案--------------------
引用:
引用:非要 Console 么?用个 log4net 然后修改输入 log 的级别不是很好。

比如 Level=Debug 输出 Debug Log。相应的:FATAL/ERROR/WARN/DEBUG/INFO

当然,最优雅的设计就是将debug信息发布为一个selfhost的服务,然后再组合不同的debugger来……


启动一个Console,重定向log输出应该不是难事。