Author:zfive5(zhaozidong)
Email:zfive5@yahoo.com.cn
引子
前些天一个同事把我拉到他们那里,让我解决一个问题,主要就远程的时候得到客户端是什么,这样的需求搞了半天也未果,特意在机器上装了一个远程终端,一定要解决这个问题。开动...
正文
代码如下:
#include "Wtsapi32.h"
......
void CTestZFive5Dlg::OnBnClickedOk()
{
// TODO: 在此添加控件通知处理程序代码
//OnOK();
bool fActiveSession = false;
DWORD dwSessionID = -1;
LPTSTR pData = NULL;
DWORD cbReturned = 0;
ProcessIdToSessionId(GetCurrentProcessId(), &dwSessionID);
if( WTSQuerySessionInformation(WTS_CURRENT_SERVER_HANDLE, dwSessionID, WTSClientDirectory, &pData, &cbReturned)
&& cbReturned>0)
{
AfxMessageBox(pData);
}
WTSFreeMemory(pData);
}
运行如下图;
通过判断结尾含"mstscax.dll",来判断是否是微软的远程终端(这个结论明天还的让同事验证),不过在解决这个问题是碰到了,在打开VS2010创建VC工程的时候莫名提示下面的错误
---------------------------
Microsoft Visual Studio
---------------------------
Automation 服务器不能创建对象
---------------------------
确定
---------------------------
结果是因为前些天解决客户问题的时候把"scrrun.dll"反注册了,直接一句“regsvr32 scrrun.dll”搞定