终端服务管理器--编程指南

摘要

最近的一个项目中需要集成终端管理器的功能,这样就用到了WTS(Windows Terminal Services)系列函数。实际的项目中我把相关的功能封装到了一个组件中,这里把这部分功能分离出来,介绍WTS系列函数的使用。本程序完成了 Windows 2000 Server终端服务管理器的基本功能。

功能

  • 服务器当前所有会话列表
  • 列出指定会话所启用的所有进程,和登陆会话的相关信息(用户名,IP地址,分辨率等)
  • 结束指定会话的指定进程
  • 断开,复位指定的会话
  • 给指定的会话发送消息

编译

我的编译环境是:Windows 2000 Server ,VC6.0

使用WTS函数,需要先做下面的工作:

  1. 在StdAfx.h文件中加入:
    #include "Wtsapi32.h"
  2. 在Project->Settings->Link的Object/Library modules中加入:Wtsapi32.lib

WTS函数说明

下面说明WTS系列的15个函数,其中不包括虚拟通道部分。

函数功能
ProcessIdToSessionId得到与进程ID对应的终端服务会话ID
WTSCloseServer关闭一个打开的终端服务器句柄
WTSDisconnectSession断开指定的终端服务会话
WTSEnumerateProcesses枚举指定终端服务器上的所有活动进程
WTSEnumerateSessions得到指定终端服务器的会话列表
WTSFreeMemory释放终端服务函数分配的内存
WTSLogoffSession复位指定的终端服务会话
WTSOpenServer打开一个指定终端服务器的句柄
WTSQuerySessionInformation得到指定的终端服务会话的相关信息
WTSQueryUserConfig得到在域控制器或终端服务器上为指定用户配置的信息
WTSSendMessage给指定的终端会话发送消息,客户端的桌面将显示出一个消息对话框
WTSSetUserConfig改变在域控制器或终端服务器上为指定用户配置的信息
WTSShutdownSystem关闭(也可以重新启动) 指定的终端服务器
WTSTerminateProcess结束指定终端服务器上的指定进程
WTSWaitSystemEvent等待一个终端服务事件

演示程序中使用了上面的大部分函数,具体的使用方法参看源代码。值得说明的是演示程序中没有用到的两个函数WTSQueryUserConfigWTSSetUserConfig函数,这对函数可以为服务器上的用户设置很多有用属性,比如登陆环境,连接时间,登录后默认打印机等等,具体的说明见MSDN。 我的工程中需要为Windows下建立的用户设置登陆环境,我用了很长时间发现ADSI的终端扩展函数里可以完成这个功能,但是ADSI的终端扩展函数只 能用在Windows 2003 Server中,而且相应的SDK还没有出来(至少我没有找到),最后还是在用这个函数得到了解决。

其他

演示程序中使用了切分窗口,对于不知道如何处理切分窗口中的消息映射和事件响应的朋友可以在演示程序中找到答案。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值