终端服务感知应用程序如何检索用户的私有 Windows 目录?
GetWindowsDirectory 的文档说:
- TS-Aware 应用程序获取实际 Windows 目录。
- 非 TS 感知应用程序获取当前用户的“私有”Windows 目录。
因此,我正在开发一个需要 TS-Aware 的 C# 类库,因为我不能要求所有使用该库的应用程序都是非 TS-Aware 的。 C# 默认是 TS-Aware。
我需要将 INI 文件放入 Windows 目录中,以便与不支持 TS 的旧版应用程序进行通信。这对于普通用户来说毫无困难,但在终端服务会话中则不然。
在终端服务下:
- 旧版应用程序使用用户“私有”Windows 目录中的 INI 文件。
- C# 库使用系统 Windows 目录中的 INI 文件。
我需要:
- 在终端服务下运行时进行检测。我可以通过检查 SystemInformation.TerminalServerSession 标志来做到这一点。
- 从 TS-Aware 进程中,找到用户的“私有”Windows 目录。我找不到任何文档告诉我如何执行此操作。
The documentation for GetWindowsDirectory says:
- TS-Aware applications get the actual Windows directory.
- Non-TS-Aware applications get the current user's "private" Windows directory.
So, I am working on a C# class library that needs to be TS-Aware, because I cannot require all apps using this library to be non-TS-Aware. The C# default is to be TS-Aware.
I need to drop INI files into the Windows directory to communicate with a legacy App that is NOT TS-Aware. This works without difficulty in a regular user, but not in a Terminal Services session.
Under Terminal Services:
- The Legacy App uses the INI file in the user's "private" Windows directory.
- The C# library uses the INI file in the system Windows directory.
I need to:
- Detect when running under Terminal Services. I can do this by checking the
SystemInformation.TerminalServerSession
flag. - From a TS-Aware process, locate the user's "private" Windows directory. I can find no documentation that tells me how to do this.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我认为它总是在windows子目录中的user文件夹下,所以:
I think it is always under the user folder in the windows sub directory, so: