1

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 目录。我找不到告诉我如何执行此操作的文档。
4

1 回答 1

0

我认为它总是在 windows 子目录中的用户文件夹下,所以:

System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), "windows");
于 2011-02-11T18:59:03.377 回答