Я пытаюсь создать какой-то автоматический логин для своего приложения через командную строку. Для этого я думал следующим образом:Разбор параметров командной строки
myapp.exe /autologin -u "Username" -p "Password"
Теперь в первую очередь: Является ли это правильный подход (с точки зрения имен и переключателей?) И второй: как я могу сделать синтаксический разбор этого ?
Я пробовал так, но не удалось (или, по крайней мере, я думаю, что мне не удалось, потому что я должен вручную делать операции со строками):
internal static void SetStartupArguments(List<string> arguments)
{
IsApplicationWarmup = arguments.Contains("/warmup");
IsApplicationAutoLogin = arguments.Contains("/autologin");
if (IsApplicationAutoLogin)
{
int autoLoginIndex = arguments.FindIndex(0, str => str == "/autologin");
if (arguments.Count >= autoLoginIndex + 1)
{
AutoLoginUser = arguments[autoLoginIndex + 1];
AutoLoginPassword = string.Empty;
}
}
}
Другое дело, что это весьма подвержен ошибкам , Я не могу сказать, первым ли выбран ключ -u или -p, поэтому я боюсь, что в конечном итоге я использую пароль как имя пользователя и наоборот.
Я просто перебирать аргументы и, когда вы сталкиваетесь '-u' следующий аргумент является пользователем; когда вы сталкиваетесь с '-p', следующим аргументом является пароль. – Joey
Вы можете заставить логику проверки использовать Regex. Является ли это приложение консольным приложением или приложением winforms? С помощью консоли точка входа в главную имеет встроенную обработку параметров/аргументов. – ApolloSoftware