Während der Laufzeit auf CommandLineArgs reagieren

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von yannik995.

    Während der Laufzeit auf CommandLineArgs reagieren

    Ich habe hier eine Einzelinstanzanwendung, die zur Laufzeit über Kommandozeilenparameter Befehle erhalten soll.

    Sie wird also über das Kontextmenü im Explorer erneut aufgerufen und ich wollte die Parameter dann mit dem StartupNextInstance Event abfragen, allerdings wird die Funktion nicht aufgerufen.
    Einzelinstanzanwendung ist ausgewählt.
    Ich habe jetzt schon gesucht, aber nichts gefunden, was meinen Fehler behebt.
    Hier mein Code:

    VB.NET-Quellcode

    1. Imports Microsoft.VisualBasic.ApplicationServices
    2. Public Class frm_settings
    3. Public Event StartupNextInstance(ByVal sender As Object, ByVal e As StartupNextInstanceEventArgs)
    4. Private Sub MyApplication_StartupNextInstance(ByVal sender As Object, _
    5. ByVal e As Microsoft.VisualBasic.ApplicationServices.StartupNextInstanceEventArgs) Handles Me.StartupNextInstance
    6. MsgBox("Test")
    7. For x As Integer = 0 To e.CommandLine.Count - 1
    8. 'Hier nutze ich eine öffentliche Methode meines Forms
    9. Me.add(e.CommandLine(x))
    10. Next
    11. End Sub


    Es wird nicht einmal die Msgbox geöffnet, somit gehe ich davon aus, dass die Methode nicht aufgerufen wird.

    Ich weiß allerdings nicht warum. Ich hoffe mir kann jemand helfen.
    Ok, vielen dank ich habe es jetzt in der ApplicationEvents.vb und es funktioniert :)

    ApplicationEvents.vb:

    VB.NET-Quellcode

    1. Namespace My
    2. ' Für MyApplication sind folgende Ereignisse verfügbar:
    3. '
    4. ' Startup: Wird beim Starten der Anwendung noch vor dem Erstellen des Startformulars ausgelöst.
    5. ' Shutdown: Wird nach dem Schließen aller Anwendungsformulare ausgelöst. Dieses Ereignis wird nicht ausgelöst, wenn die Anwendung nicht normal beendet wird.
    6. ' UnhandledException: Wird ausgelöst, wenn in der Anwendung ein Ausnahmefehler auftritt.
    7. ' StartupNextInstance: Wird beim Starten einer Einzelinstanzanwendung ausgelöst, wenn diese bereits aktiv ist.
    8. ' NetworkAvailabilityChanged: Wird beim Herstellen oder Trennen der Netzwerkverbindung ausgelöst.
    9. Partial Friend Class MyApplication
    10. Private Sub MyApplication_StartupNextInstance(ByVal sender As Object, _
    11. ByVal e As Microsoft.VisualBasic.ApplicationServices.StartupNextInstanceEventArgs) Handles Me.StartupNextInstance
    12. 'Es kann sein, das mehr als ein Parameter beim Aufrufen angegeben wird
    13. 'Deswegen benutze ich die Schleife dafür
    14. For x As Integer = 0 To e.CommandLine.Count - 1
    15. 'Hier nutze ich eine öffentliche Methode meines Forms
    16. frm_settings.add(e.CommandLine(x))
    17. Next
    18. End Sub
    19. End Class
    20. End Namespace


    Vielen Dank :)