zoukankan      html  css  js  c++  java
  • 让WPF窗体程序支持命令行方式运行的三种方式

    有的时候,我们希望窗体程序也能接受命令行参数,以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

  • 相关阅读:
    Django的是如何工作的
    Robot Framework自动化测试(五)--- 开发系统关键字
    Swarm 如何存储数据?- 每天5分钟玩转 Docker 容器技术(103)
    如何滚动更新 Service?- 每天5分钟玩转 Docker 容器技术(102)
    Service 之间如何通信?- 每天5分钟玩转 Docker 容器技术(101)
    神奇的 routing mesh
    如何访问 Service?- 每天5分钟玩转 Docker 容器技术(99)
    Swarm 如何实现 Failover?- 每天5分钟玩转 Docker 容器技术(98)
    如何实现 Service 伸缩?- 每天5分钟玩转 Docker 容器技术(97)
    运行第一个 Service
  • 原文地址:https://www.cnblogs.com/nankezhishi/p/WayOfWPFConsole.html
Copyright © 2011-2022 走看看