让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相关联。代码如下。

 

 

 

ContractedBlock.gif ExpandedBlockStart.gif ConsoleAttacher
 1ExpandedBlockStart.gifContractedBlock.gif/**////
 2//                  Console Attacher
 3//                   Version 1.0
 4//               Powered by nankezhishi
 5//                nankezhishi@gmail.com
 6ExpandedBlockStart.gifContractedBlock.gif/**////
 7
 8using System.Runtime.InteropServices;
 9
10namespace WpfConsole
11ExpandedBlockStart.gifContractedBlock.gif{
12ExpandedSubBlockStart.gifContractedSubBlock.gif    /**//// <summary>
13    /// 
14    /// </summary>

15    public class ConsoleAttacher
16ExpandedSubBlockStart.gifContractedSubBlock.gif    {
17        private const int ATTACH_PARENT_PROCESS = -1;
18
19ExpandedSubBlockStart.gifContractedSubBlock.gif        /**//// <summary>
20        /// 
21        /// </summary>

22        public static void AttachParentConsole()
23ExpandedSubBlockStart.gifContractedSubBlock.gif        {
24            AttachConsole(ATTACH_PARENT_PROCESS);
25        }

26
27        [DllImport("Kernel32.dll", EntryPoint = "AttachConsole", CharSet = CharSet.Unicode, SetLastError = true)]
28        public static extern void AttachConsole(int dwProcessId);
29    }

30}

31

 

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

 

ConsoleAttacher.AttachParentConsole();

 

运行结果如图4所示。

 

4. Attach Console

 

 

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

WpfConsole

 

创建窗体在Visual Studio 2022 中是一个基本的操作步骤,主要涉及到应用程序设计和界面构建。以下是关于如何创建窗体的基本流程: ### 使用 Visual Studio 2022 创建窗体的基本步骤: #### 1. **打开项目**: - 打开 Microsoft Visual Studio 2022。 - 选择“新建”菜单下的“项目”,然后从模板列表中选择合适的项目类型(例如Windows Forms应用、WPF应用等)。 #### 2. **设置项目属性**: - 在新项目窗口中输入必要的信息,如项目名称、位置以及解决方案名。 - 选择目标平台(如.NET Framework 或 .NET Core 等)和框架版本。 - 确定项目的语言(通常为C#或VB.NET)。 #### 3. **创建窗体**: - 在项目视图中找到并点击项目文件夹下的“Form.cs”或相应的窗体文件。 - 这将打开一个新的空白窗体设计页面。在这里你可以开始添加控件,如按钮、文本框、标签等,并通过拖放操作将它们放置到窗体上。 #### 4. **设计用户界面**: - 利用工具箱面板提供的各种控件工具,添加所需的控件元素。 - 对控件进行布局调整,可以使用网格布局或流式布局等方式。 - 调整大小、颜色、字体和其他样式属性,以满足美观和功能需求。 #### 5. **编写代码**: - 通过双击窗体或特定控件可以自动跳转到对应的代码编辑器区域。 - 在这里编写事件处理程序(如按钮单击事件、文本框输入事件等),实现程序的功能逻辑。 - 可以利用.NET框架提供的API进行更复杂的交互和数据处理。 #### 6. **运行和调试**: - 保存所有更改后,可以点击“运行”按钮启动应用程序预览模式。 - 使用内置的调试工具进行错误查找和修复,优化程序性能。 #### 7. **发布应用程序**: - 当应用程序开发完成并通过测试后,可以选择“发布”选项生成可执行文件或其他分发格式。 - 根据需要选择适当的发布配置(如Debug或Release)和目标操作系统架构。 通过以上步骤,您可以基于Visual Studio 2022 创建出功能性较强的桌面应用程序,包括但不限于简单的命令行应用、复杂的数据管理界面及图形化用户界面等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值