c# - 将 Windows 应用程序作为命令行应用程序运行

标签 c# .net winforms

我正在开发主要是 Windows 窗体应用程序的迁移工具。我想要做的是提供将应用程序作为一种命令行实用程序运行的能力,其中可以传入参数并且迁移完全没有 GUI。这看起来很直接,我的应用程序的入口点如下所示:

    [STAThread]
    static void Main(string[] args)
    {
        if (args.Length == 0)
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new MainWindow());
        }
        else
        {
            //Command Line Mode
            Console.WriteLine("In Command Line Mode");
            Console.ReadLine();
        }
    }

我遇到的问题是,当执行传递到 else block 时,文本不会在命令提示符下写回给用户,这是有问题的,因为我想在各种执行完成后在命令提示符下更新用户。我可以很容易地编写一个独立的控制台应用程序,但我希望提供一个单一的工具,允许针对给定场景使用不同类型的条目。我希望做的事情是否可能,如果可能,它是如何实现的?

谢谢!

最佳答案

这里有一个讨论这个的主题:http://social.msdn.microsoft.com/forums/en-US/Vsexpressvb/thread/875952fc-cd2c-4e74-9cf2-d38910bde613/

关键是调用AllocConsole来自 kernel32.dll 的函数

关于c# - 将 Windows 应用程序作为命令行应用程序运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13258453/

相关文章:

c# - 如何将 C# SSLStream 客户端连接到 OpenSSL 服务器?

.net - 如何使用 .NET 确定 Windows 上网络接口(interface)的绑定(bind)顺序?

.net - ASP.NET MVC 从请求参数中删除双正斜杠

C# TestStack.White - 无法精确定位到我想要的按钮

c# - 代码分析,迷失在CA1709和CA1704之间

c# - 语句 "lexical"中的 "C# implements lexical closure"是什么意思?

c# - 从 ResourceStream 获取图标

.net - .NET 的竞争条件分析器

c# - 关于dataGridView的Row和Column Headers的问题

c# - ToolStripDropDownMenu 在表单最小化和恢复后保持打开状态