C# 从WinForms程序显示控制台窗口

C# 从WinForms程序显示控制台窗口,c#,winforms,C#,Winforms,我有一个WinForms程序。如果用户从命令行启动并传递无效参数,我如何在控制台窗口中显示错误信息?您可以使用console.WriteLine(消息)方法输出信息。您可以使用console.WriteLine(消息)方法输出信息方法。下面是一个示例,说明在将错误参数传递给winform应用程序时如何向命令行显示消息: static class Program { [DllImport("kernel32.dll")] static extern bool AttachConso

我有一个WinForms程序。如果用户从命令行启动并传递无效参数,我如何在控制台窗口中显示错误信息?

您可以使用console.WriteLine(消息)方法输出信息。

您可以使用console.WriteLine(消息)方法输出信息方法。

下面是一个示例,说明在将错误参数传递给winform应用程序时如何向命令行显示消息:

static class Program
{
    [DllImport("kernel32.dll")]
    static extern bool AttachConsole(int dwProcessId);
    private const int ATTACH_PARENT_PROCESS = -1;

    [STAThread]
    static void Main(string[] args)
    {

        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);

        //if parameter -window is passed - opens main form, else displays Bad params message
        if(args[0] == "-window")
            Application.Run(new main());
        else
        {
            //Attach console process
            AttachConsole(ATTACH_PARENT_PROCESS);
            Console.WriteLine("Bad params");
        }
    }
}

参考:

以下是在向winform应用程序传递错误参数时如何向命令行显示消息的示例:

static class Program
{
    [DllImport("kernel32.dll")]
    static extern bool AttachConsole(int dwProcessId);
    private const int ATTACH_PARENT_PROCESS = -1;

    [STAThread]
    static void Main(string[] args)
    {

        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);

        //if parameter -window is passed - opens main form, else displays Bad params message
        if(args[0] == "-window")
            Application.Run(new main());
        else
        {
            //Attach console process
            AttachConsole(ATTACH_PARENT_PROCESS);
            Console.WriteLine("Bad params");
        }
    }
}

参考资料:

您的WinForms应用程序可能会弹出一个显示错误的弹出窗口,如消息框

如果应用程序作为批处理文件的一部分以无人参与模式运行,则可以写入事件日志或应用程序创建的自定义日志文件

如果批处理命令将输出重定向到文件,则告诉您使用Console.WriteLine的其他答案也很有用,例如

myApp.exe>>errors.txt


这会将控制台附加到error.txt文件…

您的WinForms应用程序可能会弹出一个显示错误的弹出窗口,如消息框

如果应用程序作为批处理文件的一部分以无人参与模式运行,则可以写入事件日志或应用程序创建的自定义日志文件

如果批处理命令将输出重定向到文件,则告诉您使用Console.WriteLine的其他答案也很有用,例如

myApp.exe>>errors.txt


这会将控制台附加到error.txt文件…

在windows中,您可以指定要通过快捷方式传递给程序的参数。如果快捷方式参数不正确,将在何处显示错误消息?也就是说,为什么不在窗口中显示错误消息/忽略参数(或记录到事件查看器/日志文件)?在windows中,您可以指定要通过快捷方式传递给程序的参数。如果快捷方式参数不正确,将在何处显示错误消息?例如,为什么不在窗口中显示错误消息/忽略参数(或登录到事件查看器/日志文件)?但我的应用程序是Winform而不是Console。但我的应用程序是Winform而不是Console。