我在vc里面调用WTSQueryUserToken函数,不知道为什么会有这个错误?
不知道该怎么解决啊?大侠们帮帮忙呀~~
不知道该怎么解决啊?大侠们帮帮忙呀~~
解决方案 »
- 求助KeInitializeTimerEx 用法
- 小问题 麻烦大家帮忙下啦
- 关于用VC创建并显示位图的程序
- 这个。。该怎么赚钱。。。。
- 如何修改VC.NET中对话框的属性中的class name?
- [诚聘]上海游猫网络科技有限公司诚聘开发人才
- 第一天学Windows编程,第一个"Hello World"不能通过,帮帮我(在线等待)
- 怎样用DirectDraw直接显示YUV文件?
- 用过workslink的都近来一下
- 怎样用turboc c 语言实现80位十进制整数相乘?
- windows api宏定义里__in,__out,__out_ecount,__in_opt都是些什么意思?
- MFC如何用 自定义控件 实现类似 IP地址控件 的功能
WTSQueryUserToken(dwSessionId, &hToken);
msdn上说是The caller does not have the SE_TCB_NAME privilege
但是为什么没有这个权限呢,又该怎么得到这个权限呢?
没权限?你的是 win7 么?那可能要先获取到管理员权限,才能进行这个操作。
楼上说“msdn上说SID不在ACL里。”啥意思?
可以在组策略里面为管理员添加Tcb特权
{
HANDLE hToken;
if ( OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES,&hToken) )
{
TOKEN_PRIVILEGES tkp;
LookupPrivilegeValue( NULL,SE_TCB_NAME,&tkp.Privileges[0].Luid );//修改进程权限
tkp.PrivilegeCount=1;
tkp.Privileges[0].Attributes=SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges( hToken,FALSE,&tkp,sizeof tkp,NULL,NULL );//通知系统修改进程权限
return( (GetLastError()==ERROR_SUCCESS) );
}
return TRUE;
}
这时子进程就有tcb特权,如果在windowsxp需要用CsrClientCallServer通知csrss.exe