posts - 58,  comments - 192,  trackbacks - 21

有的时候,我们希望窗体程序也能接受命令行参数,以Console的方式运行。但是实现起来却要一些小技巧才能做到。如果做一个WPF程序,在WindowLoaded事件里写这样的语句:

 

    Console.WriteLine("Hello word.");

 

然后从CMD运行之。会发现这个语句根本没有输出出来。如图1所示。

 

 

1. 从命令行运行Wpf程序

 

对于这个问题有三个解决方案。三个方案各有优缺点,请酌情选择。

 

1.       使用more命令:这种方案不需要修改任何代码,只要在从命令行运行时加个 “ | more”即可。如图2 所示。

 

2. 使用more重定向输出

 

2.       更改程序的Output Type:在VS的菜单中找到Project -> [Project Name] Properties…,选择Application选项卡。把其中的Output Type,从Windows Application更改成Console Application。后果是无论是不是从命令行运行,都有个Console窗口随着主窗体一起出来。如图3所示。

 

3. Output Type改成Console Application的效果

 

3.       Windows API调用:通过调用kernel32.dll里的AttachConsole,可以把WPF程序与一个Console相关联。代码如下。

 

 

 

ConsoleAttacher

 

然后在Loaded事件里加上对这个函数的调用。

 

ConsoleAttacher.AttachParentConsole();

 

运行结果如图4所示。

 

4. Attach Console

 

 

 这里是最后一个例子的代码。

WpfConsole

 

Tag标签: WPF
posted on 2008-11-23 09:58 南柯之石 阅读(1415) 评论(2)  编辑 收藏 网摘
Body:93.75,BeforeCate:0,0
FeedBack:
2008-11-23 12:15 | Peach      
很实用
  回复  引用  查看    
2008-11-23 16:09 | 我佩服银光[未注册用户]
支持一下




------------------------------------
WPF Silverlight 技术QQ超级群10458228

成员来自五湖四海 各行各业

高手云集 热心人多 气氛活跃

(目前 386人/500人)
(还有近500MB的共享资源)

欢迎 WPF Silverlight 技术的爱好者加入,共同进步。

  回复  引用    
发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 1339254 xi7aY5hpQ7c=



相关文章:


相关搜索:
WPF

相关链接:
<2008年11月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

本人保留本博客所有文章版权,未经得本人同意的转载,必须在明显位置注明文章出处及作者,否则视为侵权。

与我联系

搜索

 

常用链接

留言簿

我的标签

随笔档案(56)

文章档案(3)

积分与排名

  • 积分 - 39531
  • 排名 - 1543

最新评论

阅读排行榜

评论排行榜

60天内阅读排行