最新消息:

让WPF窗体程序支持命令行方式运行的三种方式

nsis 永恒心锁 1285浏览 0评论

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

Console.WriteLine(“Hello word.”);

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

让WPF窗体程序支持命令行方式运行的三种方式

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

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

让WPF窗体程序支持命令行方式运行的三种方式

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

让WPF窗体程序支持命令行方式运行的三种方式

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

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

ConsoleAttacher.AttachParentConsole();

运行结果如图4所示。

让WPF窗体程序支持命令行方式运行的三种方式

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

https://yunpan.cn/cxr7VzdnjEiab (提取码:25c0)

永恒心锁,版权所有丨如未注明,均为转载丨本网站采用BY-NC-SA协议进行授权

转载请注明:永恒心锁-分享互联网 » 让WPF窗体程序支持命令行方式运行的三种方式

您必须 登录 才能发表评论!