时间:2021-05-19
需求
winForm 程序输出类型为 windows 程序(不是命令行程序)
在运行时想输入一些信息编译开发调试,如何实现这一功能
解答:
AllocConsole、FreeConsole 这两个 API 可以在任何时候调用和关闭 命令行。
代码演示:
API 部分
复制代码 代码如下:
using System.Runtime.InteropServices;
namespace WindowsFormsApplication1
{
public partial class NativeMethods
{
/// <summary>
/// 启动控制台
/// </summary>
/// <returns></returns>
[DllImport("kernel32.dll")]
public static extern bool AllocConsole();
/// <summary>
/// 释放控制台
/// </summary>
/// <returns></returns>
[DllImport("kernel32.dll")]
public static extern bool FreeConsole();
}
}
启动参数的实现
复制代码 代码如下:
using System;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
static class Program
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main(string[] args)
{
try
{
if (args.Length > 0 && args[0].ToLower() == "-c")
{//通过命令行 xxxx.exe -c 参数启动,Console
//注意:不用 Main(string[] args)、System.Environment.GetCommandLineArgs(); 也可以取得命令行参数在任何地方
//启动
NativeMethods.AllocConsole();
Console.WriteLine("控制台以启动");
}
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
finally
{
//关闭 (如果在这个位置其实写不写都行了)
NativeMethods.FreeConsole();
}
}
}
}
程序实现
复制代码 代码如下:
using System;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btnOpenConsole_Click(object sender, EventArgs e)
{
//开启控制台
NativeMethods.AllocConsole();
}
private void btnCloseConsole_Click(object sender, EventArgs e)
{
//关闭控制台
NativeMethods.FreeConsole();
}
private void btnOut_Click(object sender, EventArgs e)
{
//模拟输出
Console.WriteLine(textBox1.Text);
}
}
}
代码下载:(VS2008 如果其他版本VS请自行修改)
http://xiazai.jb51.net/201302/other/WinformShellConsole_VS08.rar
最后:
其实代码很简单,不过很适合在运行时输出一些临时调试信息
用GUI画图的操作一般下断点很容易影响Print 事件的情况
,有时候在客户那里程序问题在上打开控制台输出一些调试信息看着比较方便;
而且控制太没有线程限制的,所以使用起来要比单独的日志窗口方便、而且容易复制内容,还支持 paus 键;
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
要想从命令行启动mysqld服务器,你应当启动控制台窗口(或“DOSwindow”)并输入命令:C:\>C:\ProgramFiles\MySQL\MySQLS
一、使用安装pipinstallmitmproxymitmproxy是具有控制台界面的交互式,支持SSL的拦截代理mitmdump是mitmproxy的命令行版
方法一:MySQL提供跳过访问控制的命令行参数,通过在命令行以此命令启动MySQL服务器:safe_mysqld--skip-grant-tables&即可跳过
本文实例讲述了python在windows命令行下输出彩色文字的方法。分享给大家供大家参考。具体分析如下:默认情况下python在控制台输出的文字信息都是黑白的
WSCRIPT与CScript区别窗口中运行,WSCRIPT;命令行中运行,CScrip;cscript因为把输出放进了控制台所以可以对它重定向方便程序调用ws