My.Application.StartupNextInstance-Ereignis

Aktualisiert: November 2007

Tritt ein, wenn versucht wird, eine Einzelinstanzanwendung zu starten und die Anwendung bereits aktiv ist.


' 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

Das Object, das das Ereignis ausgelöst hat.

e

Ein StartupEventArgs-Objekt, das die Befehlszeilenargumente der Anwendung enthält.

Eine Einzelinstanzanwendung löst das StartupNextInstance-Ereignis aus, wenn Sie versuchen, die Anwendung neu zu starten und diese bereits aktiv ist. Wenn eine Einzelinstanzanwendung das erste Mal gestartet wird, wird das Startup-Ereignis ausgelöst. Weitere Informationen finden Sie unter My.Application.Startup-Ereignis und unter Gewusst wie: Angeben des Instanziierungsverhaltens für eine Anwendung (Visual Basic).

Dieses Ereignis ist Bestandteil des Visual Basic-Anwendungsmodells. Weitere Informationen finden Sie unter Übersicht über das Visual Basic-Anwendungsmodell.

Dieses Ereignis wird im Hauptthread der Anwendung mit den anderen Benutzeroberflächenereignissen ausgelöst. Dies ermöglicht es dem Ereignishandler, direkt auf die Benutzeroberfläche der Anwendung zuzugreifen. Wenn die Anwendung beim Auslösen dieses Ereignisses gerade ein anderes Benutzeroberflächenereignis behandelt, kann das Ereignis jedoch erst verarbeitet werden, wenn der andere Ereignishandler beendet wurde oder die My.Application.DoEvents-Methode aufruft.

Hinweis:

Das StartupNextInstance-Ereignis wird nur in Einzelinstanzanwendungen ausgelöst. Um Einzelinstanzverhalten für die Anwendung zu aktivieren, müssen Sie im Projekt-Designer das Kontrollkästchen Einzelinstanzanwendung erstellen aktivieren. Weitere Informationen finden Sie unter Gewusst wie: Angeben des Instanziierungsverhaltens für eine Anwendung (Visual Basic).

Sie müssen die CommandLine-Eigenschaft des e-Parameters verwenden, um auf die Argumente für anschließende Versuche zum Starten einer Einzelinstanzanwendung zuzugreifen. Die My.Application.CommandLineArgs-Eigenschaft stellt die Argumente bereit, mit denen die erste Instanz einer Einzelinstanzanwendung gestartet wird.

Der Code für den StartupNextInstance-Ereignishandler wird in der Datei ApplicationEvents.vb gespeichert, die standardmäßig ausgeblendet ist.

So öffnen Sie das Code-Editor-Fenster für Anwendungsereignisse

  1. Wählen Sie im Projektmappen-Explorer ein Projekt aus, und klicken Sie im Menü Projekt auf Eigenschaften.

  2. Klicken Sie auf die Registerkarte Anwendung.

  3. Klicken Sie auf die Schaltfläche Anwendungsereignisse anzeigen, um den Code-Editor zu öffnen.

    Weitere Informationen finden Sie unter Gewusst wie: Behandeln von Anwendungsereignissen (Visual Basic).

In der folgenden Tabelle werden Beispiele für Aufgaben mit dem My.Application.StartupNextInstance-Ereignis aufgeführt.

Zweck

Weitere Informationen finden Sie unter

Verwenden der vom Visual Basic-Anwendungsmodell bereitgestellten Ereignisse zum Ausführen von Code

Gewusst wie: Ausführen von Code beim Starten oder Beenden einer Anwendung

Überprüfen der Befehlszeilenargumente der ersten Anwendungsinstanz

My.Application.CommandLineArgs-Eigenschaft

In diesem Beispiel wird der e-Parameter des StartupNextInstance-Ereignishandlers verwendet, um die Befehlszeilenargumente der Anwendung zu überprüfen. Wenn ein Argument gefunden wird, das mit /input= beginnt, wird der Rest dieses Arguments angezeigt.

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


Sie müssen den Code im Code-Editor-Fenster für Anwendungsereignisse eingeben. Um dieses Fenster zu öffnen, befolgen Sie die Anweisungen im Abschnitt Hinweise dieses Themas. Weitere Informationen finden Sie unter Gewusst wie: Behandeln von Anwendungsereignissen (Visual Basic).

Namespace:Microsoft.VisualBasic.ApplicationServices

Klasse:WindowsFormsApplicationBase

Assembly:Visual Basic Runtime Library (in Microsoft.VisualBasic.dll)

Verfügbarkeit nach Projekttyp

Projekttyp

Verfügbar

Windows-Anwendung

Ja

Klassenbibliothek

Nein

Konsolenanwendung

Nein

Windows-Steuerelementbibliothek

Nein

Web-Steuerelementbibliothek

Nein

Windows-Dienst

Nein

Website

Nein

Es sind keine Berechtigungen erforderlich.

Community-Beiträge

Anzeigen: