2012-06-13 65 views
0

我正在嘗試編寫遠程桌面客戶端以用於我的測試環境。如何在使用MSTSCLib時找到遠程桌面會話ID

目標是首次登錄到計算機(新虛擬機),讓用戶配置文件和第一次登錄期間發生的所有事情發生,然後註銷。

我能夠創建會話並以用戶使用MSTSCLib/AxMsRdpClient6NotSafeForScripting接口登錄到計算機。

現在我想使用WTSLogoffSession函數將用戶從計算機上註銷(而不僅僅是斷開連接)。但是這個函數需要會話ID,我無法弄清楚如何找到在RdpClient接口中運行的當前會話。

您在哪裏/如何找到您創建的RDP會話中會話的會話ID?看起來這應該是一個財產或某處容易找到的東西,但我已在任何地方找到它。

我認爲當給出一個簡單的解決方案時,我會打到自己的頭上,但它迄今爲止正在避開我。

感謝

回答

0

我不認爲這是可以從RDP控制接口獲取會話ID(我試過,他會喜歡被證明是錯誤的!)。您最好的選擇可能是使用WTSEnumerateSessionsWTSQuerySessionInformation(使用WTSInfoClass = WTSSessionInfo從WTSINFO structure獲取登錄時間)或使用包裝庫(如Cassia)(如果您使用.NET語言並且不使用不想處理P/Invokes)。

+0

我一直在拒絕接受這個,因爲像你一樣,我希望你會被證明是錯誤的。看起來我們都很失望。 – prshaw

+0

是......:/我在猜測MS將會話ID視爲與客戶端無關的服務器端實現細節。 –