title: AppData folder of user who runs application
body: <p><strong>I'm currently using</strong> this:</p>
  
  <pre><code>Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
  </code></pre>
  
  <p>to access the AppData folder of the user logged in. The result is a path like this:</p>
  
  <pre><code>"C:\\Documents and Settings\\Michael\\Application Data"
  </code></pre>
  
  <p><strong>But:</strong> To run the program on another user, I start a new Process like this:</p>
  
  <pre><code>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.
  }
  </code></pre>
  
  <p>and kill the current one.</p>
  
  <p>So what I want is the new AppData folder but the AppData call results in the default one:</p>
  
  <pre><code>"C:\\Documents and Settings\\Default\\Application Data"
  </code></pre>
  
  <p><strong>What I need</strong> is the ApplicationData of the user of the thread my program is working in. AND I don't like to use something like Substring (Only if I have to :)</p>