Как приложение с поддержкой служб терминалов может получить личный каталог Windows пользователя? - PullRequest
1 голос
/ 11 февраля 2011

Документация для GetWindowsDirectory гласит:

  • Приложения TS-Aware получают каталог фактический Windows.
  • Приложения не-TS-Aware получают текущего пользователя«личный» каталог Windows.

Итак, я работаю над библиотекой классов C #, которая должна быть TS-Aware, потому что я не могу требовать, чтобы все приложения, использующие эту библиотеку, не были TS-Aware.По умолчанию в C # используется TS-Aware.

Мне нужно перенести INI-файлы в каталог Windows для связи с устаревшим приложением, которое НЕ TS-Aware.Это работает без проблем для обычного пользователя, но не в сеансе служб терминалов.

В службах терминалов:

  • Устаревшее приложение использует файл INI в «частной» Windows пользователя.каталог.
  • Библиотека C # использует INI-файл в системном каталоге Windows.

Мне необходимо:

  1. Обнаружить при работе в службах терминалов.Я могу сделать это, установив флаг SystemInformation.TerminalServerSession.
  2. В процессе TS-Aware найдите «личный» каталог пользователя Windows.Я не могу найти документацию, которая говорит мне, как это сделать.

1 Ответ

0 голосов
/ 11 февраля 2011

Я думаю, что он всегда находится в папке пользователя в подкаталоге Windows, поэтому:

System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), "windows");
...