Если я не понимаю, что вы хотите, вам следует перебирать коллекцию CommandLine Args и запрашивать только те, которые не предоставлены. Это решит проблему пользователя, запускающего ваше приложение из командной строки без каких-либо аргументов. Таким образом, вы будете запрашивать только те аргументы, которые явно не переданы в командной строке.
Как это:
Dim someArgument as String = String.Empty
Dim myArgument as String = String.Empty
For Each arg as String In Environment.GetCommandLineArgs()
If arg.StartsWith("SomeArgument") Then
someArgument = arg
End If
If arg.StartsWith("MyArgument") Then
myArgument = arg
End If
' Continue for each extra argument
Next
If String.IsNullOrEmpty(someArgument) Then
' prompt for someArgument
End If
If String.IsNullOrEmpty(myArgument) Then
' prompt for myArgument
End If
Единственная сложная часть здесь - это анализ значения «arg» в цикле for, поскольку это будет что-то вроде SomeArgument = someValue. Мой код не разделяет их, вы, вероятно, захотите это сделать.