将参数传递给启动为控制台或GUI应用程序?

3
我有一个控制台应用程序,将通过计划程序启动。如果由于某种原因,该文件的某部分无法构建,则需要一个GUI前端,以便我们可以在第二天使用特定的输入运行它。
是否有一种方法可以传递参数到应用程序入口点,以根据传递的参数启动控制台应用程序或GUI应用程序?

请参见https://dev59.com/SHVD5IYBdhLWcg3wHnwX。 - micahwittman
5个回答

3
看起来你想要的是基于命令行开关运行控制台应用程序或Windows应用程序。
如果你查看这个线程中的最后一条消息,Jeffrey Knight发布了代码来实现你所要求的功能。
然而,请注意许多“混合”应用程序实际上会发出两个不同的可执行文件(查看Visual Studio - devenv.exe是GUI,devenv.com是控制台)。使用“混合”方法有时可能会导致难以跟踪的问题。

非常感谢Philip。这正是我正在寻找的。我不确定这是否是一个好的实践方法,或者我应该使用两个不同的可执行文件。 - Bob Cummings

1

我认为Philip是正确的。虽然我在一个广泛部署的商业应用程序中一直使用“混合”方法而没有问题。但我确实遇到了一些“混合”代码的问题,所以最终我修复了它们并重新发布了解决方案。

所以请放心使用它。它实际上非常容易使用。混合系统在Google Code上,并更新了这种技术的旧CodeGuru解决方案,并提供源代码和工作示例二进制文件。


这应该得到更多的关注。 - Philip Daubmeier

1

前往主方法(Program.cs)。在那里放置您的逻辑,并确定要执行什么,以及有条件地执行Application.Run()。


0

解决这个问题的一个方法是让控制台应用程序编写GUI应用程序的配置文件(WinForms最简单)。

我喜欢混合方法,命令行开关似乎是多余的。

可能更简单的方法是使用相同引擎的两个应用程序来实现共同功能。可以这样考虑,控制台应用程序是供计算机使用的,而GUI应用程序是供人类使用的。由于CLI应用程序将首先执行,因此它可以通过配置文件向GUI应用程序传递数据。

其中一个好处是处理引擎的接口会更简洁,因此未来更容易维护。

这将是最简单的方法,因为配置文件机制很容易获得,您不必编写大量格式化和解析例程。

如果您不想使用配置机制,则可以直接将JSON或XML序列化写入文件以轻松传输数据。


0
将GUI输出写入文件,供控制台应用程序在加载时检查。这样,您的控制台应用程序就可以在一个预定的操作中执行修复操作和正常操作。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接