由于一些调试需要,我们有时会希望在运行图形界面程序(WPF/WinForm)的时候能看到来自控制台的输出,或是干脆开启控制台的输出窗口。这对于简单一些,没有专门的日志显示模块的小项目会非常有用。那么我们应该如何用最简单的方式做到这一点呢?不用钩子,也不需要自己编写界面。
-
新建一个(WPF/WinForm)项目
-
打开csproj文件,将OutputType从WinExe修改为Exe
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net8.0-windows</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<UseWPF>true</UseWPF>
</PropertyGroup>
</Project>
-
运行项目,完成!
是不是很简单呢?学会了吗,学会了
视频链接:
【小技巧】如何在WPF中开启控制台?
微信公众号搜索:scixing的炼丹房
WPF
应用程序默认情况下是不会
显示
控制台
的,有时候我们却有着样子的需求想要
显示
控制台
,因此以下是一种解决方法:
新建一个
WPF
应用程序,默认有个叫做MainWindow的xaml文件及MainWindow类。
新建一个类,重新命名自己的名称空间,如下:namespace My
WPF
Application
/// <summary>
/// Intera
static extern bool FreeConsole();
[DllImport("kernel32.dll")]
static extern bool AllocConsole();
/// <summary>
/// The m
InitializeComponent();
[System.Runtime.InteropServices.DllImport("kernel32.dll", SetLastError = true)]
[return: System.Runtime.InteropServices.MarshalAs(System.Runtime.InteropServices.UnmanagedType.Bool)]
控制台
作为信息
显示
窗口
对于调试程序查找程序BUG有诸多好处,所以给GUI程序绑定一个
控制台
窗口
用于
显示
程序运行时的状态是非常有必要的,否则就需要用
WinForm
的控件自己去实现了。首先想让
WinForm
程序绑定
控制台
窗口
需要调用Windows API,需要先导入命名空间:
using System.Runtime.InteropServices;
然后导入dll:
[DllImport("kernel32.dll")]
public static extern bool AllocCons...
在
WinForm
下开发, Log信息不能实时查看(写文件不太实时, Console好像也调不出来,反正我没调出来) 没事的时候写了个小Demo, 可实时看Log信息,没啥技术含量
版权是我的, 代码是大家的。