0

这更像我卡在如何进行,因为这是我第一次开发应用程序的一般理论问题的...VS 2015年窗体/控制台功能的应用程序

我发展报告在VS 2015中需要两种类型的功能。它需要有一个GUI,以便用户可以与之交互并创建报告,并且这些报告需要通过Windows任务计划程序进行安排。我正计划在调度部分使用控制台应用程序。我的问题是,执行此操作的最佳方法是什么?截至目前,我在一个解决方案中有两个独立的项目。这是考虑我的需求的最佳途径,还是有更好的选择,我不知道?我在网上做了一些搜索,但一直没能找到有效的解决方案。这是特别困难的,因为调度部分需要从Windows窗体应用程序中提取应用程序设置。

任何帮助或指导将不胜感激。先谢谢你!

回答

0

如果您实际需要控制台界面,则需要控制台应用程序的唯一原因是。听起来不像是这种情况 - 界面将用WinForms编写。因此,您实际上并不需要两个单独的应用程序。您可以将所有必要的功能合并到一个可执行文件中。

做到这一点的方法是检查命令行参数指出该应用是否应该交互方式或无头运行。可能,您要做的就是在传递命令行参数时交互式运行应用程序。这将是正常情况,用户在双击应用程序以从资源管理器启动它时遇到的情况。

当谈到时间来安排您的应用程序在后台运行一个任务(任务计划程序或其他任何东西),你通过传递一个特殊的命令行参数,您的应用程序信号这一点。您可以决定这是什么,如果您的应用可以在后台执行多项操作,您可能需要其中的几个。如果需要(或可以)将配置信息/参数传递给应用程序以配置应执行后台任务的方式,则也可以在命令行上传递这些信息/参数。或者,正如您在问题中提到的那样,您可以从上次运行应用程序交互版本时由用户设置/保存的任何设置中提取这些设置。

诀窍只是checking for these command-line parameters in your application's Main method。在我提出的设计中,如果没有指定任何命令行参数,那么您只需像往常一样创建主窗体。如果有命令行参数,那么您需要解析它们以查看正在请求的操作。一旦你解析了它们并确定了哪个后台任务应该运行,那么你只需运行该后台任务 - 而不需要创建/显示表单。

lots of different solutions用于解析命令行参数。使用库可能是最简单的方法,并且也给你最多的功能。但是如果你只需要一些简单的模式,就像/background模式一样,那么你可以很容易地为自己编写代码,而不需要依赖库或者需要学习如何使用它。

所以,你可以做到这一切有一个项目在一个单一的解决方案,如果你想。或者,您可以将功能的不同方面划分到编译为库的不同项目中(,例如,DLL),但为简单起见,仍然只有一个可执行文件。

+0

非常感谢您提供所有这些详细信息。你给了我很多很好的东西来研究,它简化了我想要做的很多事情。能够将我的所有程序保存在一个应用程序中,将为我节省大量时间和头痛。 –

相关问题