共用方式為


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 事件HOW TO:指定應用程式的執行個體行為 (Visual Basic)

這個事件是 Visual Basic 應用程式模型的一部分。如需詳細資訊,請參閱 Visual Basic 應用程式模型概觀

這個事件會與其他使用者介面事件一起在應用程式的主執行緒引發。這可以讓事件處理常式直接存取應用程式的使用者介面。不過,如果引發這個事件時,應用程式正忙於處理另一個使用者介面事件,則直到其他事件處理常式完成或呼叫 My.Application.DoEvents 方法之前,都無法處理這個事件。

注意事項:

StartupNextInstance 事件只會在單一執行個體應用程式中引發。若要啟用應用程式的單一執行個體行為,您必須在 [專案設計工具] 中選取 [建立單一執行個體應用程式] 核取方塊。如需詳細資訊,請參閱 HOW TO:指定應用程式的執行個體行為 (Visual Basic)

您必須使用 e 參數的 CommandLine 屬性,存取用於以後啟動單一執行個體應用程式的引數。My.Application.CommandLineArgs 屬性提供用於啟動單一執行個體應用程式之第一個執行個體的引數。

StartupNextInstance 事件處理常式的程式碼儲存在 ApplicationEvents.vb 檔中,檔案預設為隱藏檔。

若要存取應用程式事件的程式碼編輯器視窗

  1. 在 [方案總管]中選取了專案之後,請在 [專案] 功能表,按一下 [屬性]。

  2. 按一下 [應用程式] 索引標籤。

  3. 按一下 [檢視應用程式事件] 按鈕,開啟 [程式碼編輯器]。

    如需詳細資訊,請參閱 HOW TO:處理應用程式事件 (Visual Basic)

工作

下表列出包含 My.Application.StartupNextInstance 事件的工作範例。

若要

請參閱

請使用 Visual Basic 應用程式模型所提供的事件,執行程式碼

HOW TO:當應用程式啟動或結束時執行程式碼

檢查第一個應用程式執行個體的命令列引數。

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

您必須在應用程式事件的 [程式碼編輯器] 視窗中輸入程式碼。若要存取這個視窗,請依照此主題中註解章節的指示進行。如需詳細資訊,請參閱 HOW TO:處理應用程式事件 (Visual Basic)

需求

命名空間Microsoft.VisualBasic.ApplicationServices

類別WindowsFormsApplicationBase

組件:Visual Basic Runtime Library (在 Microsoft.VisualBasic.dll 中)

依專案類型的可用性

專案類型

是否可用

Windows 應用程式

類別庫

主控台應用程式

Windows 控制項程式庫

Web 控制項程式庫

Windows 服務

網站

使用權限

不需要使用權限。

請參閱

工作

HOW TO:處理應用程式事件 (Visual Basic)

HOW TO:指定應用程式的執行個體行為 (Visual Basic)

HOW TO:指定應用程式的執行個體行為 (Visual Basic)

概念

Visual Basic 應用程式模型概觀

參考

My.Application 物件

My.Application.Startup 事件

My.Application.CommandLineArgs 屬性

StartupEventArgs

CommandLine

WindowsFormsApplicationBase.StartupNextInstance