【问题标题】:VS 2015 Form/Console Functionality in ApplicationVS 2015 应用程序中的表单/控制台功能
【发布时间】:2017-11-14 01:46:05
【问题描述】:

这更像是一个一般性的理论问题,因为这是我第一次开发应用程序,所以我被困在如何继续下去......

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

任何帮助或指导将不胜感激。提前谢谢!

【问题讨论】:

    标签: windows visual-studio visual-studio-2015 application-design


    【解决方案1】:

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

    执行此操作的方法是检查指示应用程序应该以交互方式运行还是无头运行的命令行参数。可能,您想要做的是在传递 no 命令行参数时让应用程序以交互方式运行。这是正常情况,用户在双击您的应用程序以从资源管理器中启动它时遇到的情况。

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

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

    lots of different solutions 用于解析命令行参数。使用库可能是最简单的方法,也可以为您提供最多的功能。但是,如果您只需要真正简单的东西,例如/background 模式,那么您可以轻松地自己编写代码,而无需依赖库或需要学习如何使用它。

    因此,如果您愿意,您可以在单个解决方案中的单个项目中完成所有这些工作。或者,您可以将功能的不同方面拆分到编译为库(例如、DLL)的不同项目中,但为了简单起见,仍然只有一个可执行文件。

    【讨论】:

    • 非常感谢您提供所有这些详细信息。你给了我很多很棒的东西供我研究,它大大简化了我想做的事情。能够将我的所有程序保存在一个应用程序中,这将为我节省大量时间和头痛。
    猜你喜欢
    • 2017-05-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-26
    • 1970-01-01
    • 1970-01-01
    • 2015-08-23
    • 1970-01-01
    • 2011-04-11
    相关资源
    最近更新 更多