Я использую C# с .NET 3.5Получения зарегистрированного имени пользователя, чтобы активировать процесс с
Моей целью здесь, чтобы принять вошедшими в имени пользователя и просто начать процесс под этим именем пользователя. Обычно простой способ Process.Start(pathToProgram)
поможет здесь, но проблема в том, что я вызываю эту строку из класса установщика, то есть msiexec в настоящее время работает, а имя пользователя, которое я получаю, является SYSTEM вместо фактического пользователя, который в настоящее время вошел в систему.
Конечно, Environment.UserName
также возвращает «СИСТЕМА» вместо зарегистрированного пользователя.
Как я могу запустить процесс как зарегистрированный пользователь, а не как пользователь SYSTEM?
Не удалось проверить сейчас, но вы пытались вызвать 'Environment.GetEnvironmentVariable (« USERNAME »);'? Он отличается от Environment.UserName в вашем конкретном контексте? – Steve
Нет такой вещи, как «зарегистрированный пользователь». Помните, что Windows - многопользовательская операционная система. Возможно, что ни один пользователь не зарегистрировался, один пользователь, несколько пользователей, несколько * удаленных * пользователей и любая комбинация из вышеперечисленного. Поэтому вам нужно будет более четко определить, что вы подразумеваете под «зарегистрированным пользователем» и как вы хотите обрабатывать эти другие случаи. –
зарегистрированный пользователь - это имя пользователя, которое ввело его имя и пароль на экране входа в Windows. –