1

GetWindowsDirectoryのドキュメントには次のように書かれています。

  • TS対応アプリケーションは、実際のWindowsディレクトリを取得します。
  • TSに対応していないアプリケーションは、現在のユーザーの「プライベート」Windowsディレクトリを取得します。

したがって、TS対応である必要があるC#クラスライブラリに取り組んでいます。このライブラリを使用するすべてのアプリがTS対応である必要はないためです。C#のデフォルトはTS対応です。

TS対応ではないレガシーアプリと通信するには、INIファイルをWindowsディレクトリにドロップする必要があります。これは通常のユーザーでは問題なく機能しますが、ターミナルサービスセッションでは機能しません。

ターミナルサービスの下:

  • レガシーアプリは、ユーザーの「プライベート」WindowsディレクトリにあるINIファイルを使用します。
  • C#ライブラリは、システムのWindowsディレクトリにあるINIファイルを使用します。

する必要がある:

  1. ターミナルサービスで実行しているときに検出します。SystemInformation.TerminalServerSessionフラグをチェックすることでこれを行うことができます。
  2. TS対応プロセスから、ユーザーの「プライベート」Windowsディレクトリを見つけます。これを行う方法を説明しているドキュメントが見つかりません。
4

1 に答える 1

0

私はそれが常にWindowsサブディレクトリのユーザーフォルダの下にあると思うので、:

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