WTSQuerySessionInformation

https://msdn.microsoft.com/ja-jp/library/aa383861.aspx https://msdn.microsoft.com/ja-jp/library/aa383860.aspx https://msdn.microsoft.com/ja-jp/library/aa383857.aspx https://msdn.microsoft.com/ja-jp/library/aa383858.aspx https://msdn.microsoft.com/ja-jp/library/cc428944.aspx https://msdn.microsoft.com/ja-jp/library/aa383857.aspx https://msdn.microsoft.com/ja-jp/library/aa383858.aspx https://msdn.microsoft.com/ja-jp/library/aa383860.aspx

指定したターミナルサーバー上の、指定したセッションの情報を取得します。

BOOL WTSQuerySessionInformation(
  HANDLE hServer,
  DWORD SessionId,
  WTS_INFO_CLASS WTSInfoClass,
  LPTSTR *ppBuffer,
  DWORD *pBytesReturned
);

パラメータ

hServer
[入力]ターミナルサーバーのハンドルを指定します。WTSOpenServer 関数で開いたハンドルを使います。アプリケーションを実行中のターミナルサーバーを指定するときは、WTS_CURRENT_SERVER_HANDLE を使います。
SessionId
[入力]ターミナルサービスのセッション識別子を指定します。現在のセッションを指定するときは、WTS_CURRENT_SESSION を使います。WTSEnumerateSessions 関数を使うと、特定のターミナルサーバー上で実行されているすべてのセッションの識別子が取得できます。
WTSInfoClass
[入力]指定したセッションから取得する情報の種類を指定します。 型の値のいずれかが使えます。次の表に、各値を指定したときに ppBuffer パラメータが受け取るデータの形式を示します。
データの形式
WTSInitialProgram ユーザーのログオン時にターミナルサービスが実行する初期プログラムの名前を表す、NULL で終わる文字列へのポインタを受け取ります。
WTSApplicationName セッションが実行しているアプリケーションの公開名を表す、NULL で終わる文字列へのポインタを受け取ります。関数をターミナルサービスコンソールから呼び出すと、NULL ポインタを受け取ります。
WTSWorkingDirectory 初期プログラムの起動時に使う既定のディレクトリを表す、NULL で終わる文字列へのポインタを受け取ります。
WTSOEMId NULL で終わる文字列へのポインタを受け取ります。
WTSSessionId セッション識別子が入った ULONG へのポインタを受け取ります。
WTSUserName セッションに関連付けられたユーザーの名前を表す NULL で終わる文字列へのポインタを受け取ります。
WTSWinStationName 指定したセッションの名前を表す NULL で終わる文字列へのポインタを受け取ります。
WTSDomainName ログオンしたユーザーのドメイン名を表す NULL で終わる文字列へのポインタを受け取ります。
WTSConnectState セッションの現在の接続状態を示す 列挙型の値が入った INT へのポインタを受け取ります。
WTSClientBuildNumber USHORT へのポインタを受け取ります。関数をターミナルサービスコンソールから呼び出すと、NULL ポインタを受け取ります。
WTSClientName クライアントの名前を表す NULL で終わる文字列へのポインタを受け取ります。関数をターミナルサービスコンソールから呼び出すと、NULL ポインタを受け取ります。
WTSClientDirectory クライアントがインストールされているディレクトリを表す NULL で終わる文字列へのポインタを受け取ります。
WTSClientProductId クライアント独自の製品識別子が入った USHORT へのポインタを受け取ります。関数をターミナルサービスコンソールから呼び出すと、NULL ポインタを受け取ります。
WTSClientHardwareId クライアント独自のハードウェア識別子が入った USHORT へのポインタを受け取ります。関数をターミナルサービスコンソールから呼び出すと、NULL ポインタを受け取ります。
WTSClientAddress クライアントのネットワークの種類とネットワークアドレスが入った 構造体へのポインタを受け取ります。関数をターミナルサービスコンソールから呼び出すと、NULL ポインタを受け取ります。
WTSClientDisplay クライアントのディスプレイに関する情報が入った 構造体へのポインタを受け取ります。関数をターミナルサービスコンソールから呼び出すと、NULL ポインタを受け取ります。

ppBuffer
[出力]指定したセッションの要求した情報へのポインタを受け取る変数へのポインタを指定します。データの形式と内容は、WTSInfoClass パラメータで指定する情報クラスによって異なります。情報が返されたバッファは、WTSFreeMemory 関数を使って解放してください。
pBytesReturned
[出力]ppBuffer パラメータが指すバッファに格納されたデータのサイズ(バイト数)を受け取る変数へのポインタを指定します。NULL を指定すると、バイト数は返されません。

戻り値

関数が成功すると、0 以外の値が返ります。
関数が失敗すると、0 が返ります。拡張エラー情報を取得するには、 関数を使います。

解説

プログラムがターミナルサービスコンソールで実行されているかどうかを調べるには、SessionId パラメータに WTS_CURRENT_SESSION を指定し、WTSInfoClass パラメータに WTSSessionId を指定します。ターミナルサービスコンソールで実行されていれば、ppBuffer パラメータに返されるセッション識別子が 0 になります。

対応情報

  Windows NT/2000:Windows NT 4.0, Terminal Server Edition SP4、Windows 2000
  ヘッダー:wtsapi32.h 内で宣言
  インポートライブラリ:wtsapi32.lib を使用
  Unicode:Windows NT/2000 は Unicode 版と ANSI 版を実装

参照

、、

表示: