PB 電子会議室
発言No. | 更新日 | 題名(クリックすると発言内容と関連するコメントが表示されます) |
---|---|---|
18951 | 03/03/04 15:35:34 | RE(1):WTSQuerySessionInformationの使用方法(PB8.0.2) By isii |
18938 | 03/02/27 18:48:01 | WTSQuerySessionInformationの使用方法(PB8.0.2) By きいち |
カテゴリ:PowerBuilderの開発環境
日付:2003年02月27日 18:48 発信者:きいち
題名:WTSQuerySessionInformationの使用方法(PB8.0.2)
Windows2000Serverターミナルサービスに環境において、各セッションのクライアントコンピュータ名を取得したいのですが、
WTSQuerySessionInformationというAPIを使用すれば可能な事はわかったのですが、うまくいきません。
どなたかご存知の方教えて下さい。コーディング内容は以下の通りです。
<グローバル外部関数に下記を記述>
//呼び出し側プロセスのプロセス識別子を取得
Function long GetCurrentProcessId() library \"kernel32.dll\"
//指定したプロセスに対応するターミナルサービスセッションを取得
Function long ProcessIdToSessionId(long lProcessId, Ref long lSessionId) library \"kernel32.dll\"
//指定したターミナルサーバ上の、指定したセッションの情報を取得
Function long WTSQuerySessionInformation(long hServer , long SessionId, string WTSInfoClass, Ref
string ppBuffer, Ref long pBytesReturned) LIBRARY \"wtsapi32.dll\"
<関数を実行しているスクリプトは下記の通り>
long lProcId //カレントプロセスのID
long lRet //関数の戻り値
long lMySessionId //自プロセスに対応するターミナルセッションの識別子
string WTSClientName //クライアント(コンピュータ)名
string lpBuffer //クライアント(コンピュータ)名
long lBytes //取得バイト数
CONSTANT long WTS_CURRENT_SERVER_HANDLE = 0 //現在プログラムを実行中のTerminalServer
WTSClientName = \"WTSClientName\"
//呼び出し側プロセスのプロセス識別子を取得
lProcId = GetCurrentProcessId()
//指定したプロセスに対応するターミナルサービスセッションを取得
lRet = ProcessIdToSessionId(lProcId, lMySessionId)
//カレントプロセス実行中のターミナルサーバ上のセッションの情報を取得
lRet = WTSQuerySessionInformation
(WTS_CURRENT_SERVER_HANDLE,lMySessionId,WTSClientName,lpBuffer,lBytes)
付加情報:
PowerBuilder Version (記載なし)
Client SoftWare
OS Windows95
DBMS (記載なし)
Browser (記載なし)
Server SoftWare
OS Windows 2000
DBMS (記載なし)
WebServer (記載なし)
Copyright © 2013 Power Future Co., Ltd.