My.Application.StartupNextInstance 事件

更新:2007 年 11 月

尝试启动已处于活动状态的单实例应用程序时发生。

' Usage
Public Sub Me_StartupNextInstance( _
   ByVal sender As Object, _
   ByVal e As StartupNextInstanceEventArgs _
) Handles Me.StartupNextInstance
End Sub
' Declaration
Public Event StartupNextInstance( _
   ByVal sender As Object, _
   ByVal e As StartupNextInstanceEventArgs _
)

参数

  • sender
    引发了该事件的 Object。

  • e
    包含应用程序的命令行参数的 StartupEventArgs 对象。

备注

尝试重新启动已处于活动状态的单实例应用程序时,该应用程序会引发 StartupNextInstance 事件。第一次启动单实例应用程序时,会引发 Startup 事件。有关更多信息,请参见 My.Application.Startup 事件如何:指定应用程序的实例化行为 (Visual Basic)

此事件是 Visual Basic 应用程序模型的一部分。有关更多信息,请参见 Visual Basic 应用程序模型概述

此事件随其他用户界面事件在应用程序主线程上引发。这将允许事件处理程序直接访问应用程序的用户界面。但是,如果引发此事件时应用程序正忙于处理另一个用户界面事件,则只有在其他事件处理程序已完成或调用 My.Application.DoEvents 方法 之后,才会处理此事件。

说明:

只有单实例应用程序中才会引发 StartupNextInstance 事件。若要允许应用程序的单实例行为,必须选中项目设计器中的“生成单个实例应用程序”复选框。有关更多信息,请参见 如何:指定应用程序的实例化行为 (Visual Basic)

若要在后续尝试中启动单实例应用程序,必须使用 e 参数的 CommandLine 属性来访问变量。My.Application.CommandLineArgs 属性 提供了用于启动单实例应用程序的第一个实例的参数。

StartupNextInstance 事件处理程序的代码存储在 ApplicationEvents.vb 文件中,而该文件在默认情况下是隐藏的。

访问应用程序事件的代码编辑器窗口

  1. 当“解决方案资源管理器”中有项目被选中时,在“项目”菜单上单击“属性”。

  2. 单击“应用程序”选项卡。

  3. 单击“查看应用程序事件”按钮打开代码编辑器。

    有关更多信息,请参见如何:处理应用程序事件 (Visual Basic)

任务

下表列出了涉及 My.Application.StartupNextInstance 事件的任务的示例。

要执行的操作

请参见

使用 Visual Basic 应用程序模型提供的事件来运行代码

如何:在应用程序启动或结束时运行代码

检查第一个应用程序实例的命令行参数

My.Application.CommandLineArgs 属性

示例

此示例使用 StartupNextInstance 事件处理程序的 e 参数来检查应用程序的命令行参数。如果找到以 /input= 开头的参数,则显示该参数的其余部分。

Private Sub MyApplication_StartupNextInstance( _
    ByVal sender As Object, _
    ByVal e As Microsoft.VisualBasic.ApplicationServices.StartupNextInstanceEventArgs _
) Handles Me.StartupNextInstance
    Dim inputArgument As String = "/input="
    Dim inputName As String = ""

    For Each s As String In e.CommandLine
        If s.ToLower.StartsWith(inputArgument) Then
            inputName = s.Remove(0, inputArgument.Length)
        End If
    Next

    If inputName = "" Then
        MsgBox("No input name")
    Else
        MsgBox("Input name: " & inputName)
    End If
End Sub

必须在代码编辑器窗口中输入应用程序事件的代码。若要访问此窗口,请按照本主题的“备注”部分中的说明操作。有关更多信息,请参见如何:处理应用程序事件 (Visual Basic)

要求

命名空间:Microsoft.VisualBasic.ApplicationServices

类:WindowsFormsApplicationBase

**程序集:**Visual Basic 运行库(在 Microsoft.VisualBasic.dll 中)

各项目类型的可用性

项目类型

是否可用

Windows 应用程序

类库

控制台应用程序

Windows 控件库

Web 控件库

Windows 服务

网站

权限

不需要任何权限。

请参见

任务

如何:处理应用程序事件 (Visual Basic)

如何:指定应用程序的实例化行为 (Visual Basic)

如何:指定应用程序的实例化行为 (Visual Basic)

概念

Visual Basic 应用程序模型概述

参考

My.Application 对象

My.Application.Startup 事件

My.Application.CommandLineArgs 属性

StartupEventArgs

CommandLine

WindowsFormsApplicationBase.StartupNextInstance