终端服务感知应用程序如何检索用户的私有Windows目录?

时间:2011-02-11 17:01:39

标签: c# terminal-services

GetWindowsDirectory的文档说:

  • TS-Aware应用程序获取实际的 Windows目录。
  • 非TS-Aware应用程序获取当前用户的“私有”Windows目录。

所以,我正在开发一个需要TS-Aware的C#类库,因为我不能要求使用这个库的所有应用程序都是非TS-Aware。 C#默认为TS-Aware。

我需要将INI文件放入Windows目录,以便与非TS感知的旧应用程序进行通信。这在常规用户中没有问题,但在终端服务会话中没有。

在终端服务下:

  • 旧版应用程序使用用户“私有”Windows目录中的INI文件。
  • C#库使用系统Windows目录中的INI文件。

我需要:

  1. 在终端服务下运行时检测。我可以通过查看SystemInformation.TerminalServerSession标志来完成此操作。
  2. 从TS-Aware进程中,找到用户的“私有”Windows目录。我找不到任何文件告诉我如何做到这一点。

1 个答案:

答案 0 :(得分:0)

我认为它始终位于windows子目录中的用户文件夹下,所以:

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