настоящее время я использую это:AppData папку пользователя, который работает приложение
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
для доступа к папке AppData зарегистрированного пользователя в результате путь, как это:.
"C:\\Documents and Settings\\Michael\\Application Data"
Но: Чтобы запустить программу на другой пользователь, я начинаю новый процесс, как это:
try {
var processInfo = new ProcessStartInfo() {
FileName = System.Reflection.Assembly.GetExecutingAssembly().Location,
UserName = txtWinLoginUsername.Text,
Password = txtWinLoginPassword.SecurePassword,
Domain = this.domain,
UseShellExecute = false, //kein Plan
};
//start program
Process.Start(processInfo); //execute
Application.Current.MainWindow.Close(); //close current Window if it worked
} catch {
//Windows login failed //reset PasswordBox etc.
}
и убить текущий.
Так что я хочу новая папка AppData, но результаты AppData вызовов в умолчательном:
"C:\\Documents and Settings\\Default\\Application Data"
Что мне нужно это ApplicationData пользователя нити моя программа работает в. И я не хотел бы использовать что-то вроде подстроки (только если я должен :)
Был ли этот пользователь когда-либо зарегистрирован на этой машине раньше? Если нет, то у них еще не будет папки. Кроме того, попробовали ли вы установить параметр LoadUserProfile = true в свой объект 'ProcessStartInfo'? – DavidG
'System.IO.Path.GetPathRoot (Environment.GetFolderPath (Environment.SpecialFolder.System)) +« ProgramData »' like «C: \ ProgramData» недоступен другому пользователю. Как это исправить? – Michael1248
Вы задаете разные вопросы сейчас. – DavidG