Tipp der Woche
21.04.2022, 10:37 Uhr
WPF/VB: Übergabeparameter entgegennehmen
Wie WPF-Anwendungen beim Programmstart übergebene Parameter entgegennehmen können.
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.