如果禁用Application Framework,则将VB.Net托盘应用程序设置为单实例?

时间:2016-08-21 02:05:58

标签: vb.net

我想创建一个VB.Net托盘应用程序,它直接启动到托盘,而不是通过隐藏的启动表单发送到那里。我找到了一篇CodeProject文章,解释了如何做到这一点,它完美无缺。它描述了如何禁用Application Framework(然后再重新启用它),因此可以将启动对象设置为带有启动代码的模块。

但是在重新启用Application Framework之后,如何以编程方式启用“Make single instance application”??

由于最初禁用了框架,因此也禁用了所有复选框,包括单个实例的复选框。我检查了以下两个命名空间,但找不到任何名为“SingleInstance”的属性,或类似或看似相关的任何属性:

System.Windows.Forms.Application
System.Windows.Forms.ApplicationContext

那怎么办呢?

供参考,以下是文章:

http://www.codeproject.com/Articles/75822/Create-a-System-Tray-Application-in-VB-NET

1 个答案:

答案 0 :(得分:3)

您找不到“SingleInstance”属性或任何类似属性,因为它不存在。单个实例的概念是在您检查项目属性中的“创建单个实例应用程序...”框时,Visual Basic编译器为您添加的编译器魔法。如果您想将visual basic magic与仅托盘应用程序一起使用,则需要自己管理启动代码的几个部分。

您需要两段代码才能完成这项工作。

  1. 继承Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase并覆盖OnRun方法。您将使用WindowsFormsApplicationBase的方法在此处创建托盘应用程序以提供帮助。

  2. 应用程序的Sub Main入口点,用于创建应用程序库的实例并调用OnRun方法。

  3. 有关WindowsFormsApplicationBase如何运作的详情,请参阅this article