【发布时间】:2014-04-29 05:00:19
【问题描述】:
有谁知道如何恢复一个已经运行的应用程序实例(最小化到系统托盘)而不是运行一个新实例?
我已将项目属性调整为“制作单实例应用程序”。这非常适合防止新应用程序启动但不会恢复已经运行的实例。
我在 Windows 7 Pro SP1 上的 Visual Studio Express 2012 中使用 VB.NET。
我还没有任何代码,但是这里是我用来最小化到托盘的代码(在这个伟大的论坛上找到),以防它是相关的:
Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As FormClosingEventArgs) Handles Me.FormClosing
Me.WindowState = FormWindowState.Minimized
Me.Visible = False
e.Cancel = True
nfi.Visible = True
End Sub
Private Sub ShowWindowToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ShowWindowToolStripMenuItem.Click
nfi.Visible = False
Me.WindowState = FormWindowState.Maximized
Me.Visible = True
End Sub
【问题讨论】:
-
如果单击 ShowWindow 菜单将恢复表单,但不会通过从开始菜单重新启动。我的困惑是当用户可能有效地尝试从菜单。据我了解,它们不会在当前应用程序的上下文中,或者如果启动另一个实例,原始应用程序是否可以捕获某些事件?
-
使用 StartupNextInstance 事件。项目 + 属性,应用程序选项卡,单击查看应用程序事件按钮并添加事件处理程序。
标签: vb.net