c# - 通过控制台运行 winform 应用程序

标签 c# .net winforms

我有一个 winforms 应用程序,它从图形用户界面接收输入并运行逻辑以提供输出。

我想制作同一应用程序的控制台版本,我在其中指定具有输入值的文件(而不是通过 gui 提供)并运行 winform 应用程序逻辑并将输出写入文件。

我的 winform 应用程序生成一个我希望使用的 dll,以便我的应用程序中的任何更改也反射(reflect)在控制台应用程序中。

请建议我怎样才能做到这一点。我不知道如何进行。

最佳答案

您不需要做额外的工作。

选项 1:Environment.GetCommandLineArgs()

您可以简单地使用 Environment.GetCommandLineArgs() 来解析它并根据需要使用参数。

例如:

Environment.GetCommandLineArgs().ToList()
    .ForEach(x =>
    {
        MessageBox.Show(x);
    });

例如,您可以像这样从命令行使用您的程序:

  • yourProgram.exe param1 "另一个参数"anotherParam
  • yourProgram.exe "d:\myfile.txt"

选项 2:static void Main(params string[] args)

您也可以通过这种方式更改主签名 static void Main(params string[] args) 并以这种方式使用 args:

args.ToList()
    .ForEach(x =>
    {
        MessageBox.Show(x);
    });

并以这种方式使用它:

  • yourProgram.exe param1 "另一个参数"anotherParam
  • yourProgram.exe "d:\myfile.txt"

注意:

  • 您还可以在调试时使用命令行参数。打开项目属性,在调试选项卡中,在启动选项中,输入您需要的命令行参数。然后只需运行该应用程序即可。
  • 使用 Environment.GetCommandLineArgs 时,第一个参数是您的应用程序可执行地址。
  • 使用 args 时,第一个参数是您传递的参数。

关于c# - 通过控制台运行 winform 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33074453/

相关文章:

c# - 从 winform 应用程序中的 Combobox 读取值

c# - 从我的 C# 应用程序单击另一个应用程序中的按钮?

c# - 如何在 C# Windows 窗体应用程序中将焦点发送到 tabindex 低于当前控件的控件?

C# 强制打印作业为单面打印(打印机默认为双面打印)

.net - 如何将窗口背景绑定(bind)到主题的窗口背景颜色?

.net - 如何弄清楚为什么我的本地主机站点需要这么长时间才能加载?

c# - 如何从 C# csproj 文件引用解决方案的平台?

c# - FileNotFound 当我使用 Image.FromFile()

c# - 将 stdout/stderr 从 .NET 应用程序中嵌入的 Python 重定向到文本框

C# 使用 webbrowser 文档文本,文档保持为空