Tipp der Woche 21.04.2022, 10:37 Uhr

WPF/VB: Übergabeparameter entgegennehmen

Wie WPF-Anwendungen beim Programmstart übergebene Parameter entgegennehmen können.
(Quelle: Microsoft.com)
Insbesondere wenn man ein Programm von einer anderen Anwendung starten lässt (vergleiche Tipp der vergangenen Woche), ist es interessant, beim Start gleich einen oder mehrere Parameter zu übergeben. Die Frage ist nur, wie die gestartete WPF-Anwendung auf die übergebenen Daten zugreifen kann. Dafür gibt es einige, mehr oder weniger komplizierte Optionen. Die einfachste davon ist es, die Argumente mit dem Befehl Environment.GetCommandLineArgs() auszulesen, den man beispielsweise im Eventhandler MainWindow_Loaded patziert:
...
  Dim args(5) As String
  Try
    args = Environment.GetCommandLineArgs()
    ' Das erste Argument (0) ist der Pfad zur EXE-Datei.
    ' Das zweite Argument (1) ist das erste übergebene Argument.
    ' In diesem Beispiel ist es ein Dateiname inklusive Pfad.
    If args.Length > 0 Then
      StartupFile = args(1)
    End If
  Catch

  End Try
...
Der Befehl Environment.GetCommandLineArgs() liefert ein String-Array, dessen erster Eintrag der Pfad zur EXE-Datei ist und ab dem zweiten Eintrag folgen die übergebenen Argumente. Und GetCommandLineArgs funktioniert auch dann, wenn die Argumente gar nicht über die Kommandozeile übergeben worden sind, sondern von einer anderen WPF-Anwendung via Process.Start(pfad, args) beziehungsweise Process.Start(New ProcessStartInfo(startProg, pfad, args)) – siehe hier.


Das könnte Sie auch interessieren